Sans accès à l'argv[0] comment puis-je obtenir le nom du programme?

Je sais que le nom du programme est passé comme premier argument, et à côté simple exemple permettra de l'imprimer sur la sortie standard :

#include <iostream>
int main ( int argc, char *argv[] )
{
  std::cout<<argv[0]<<std::endl;
}

Est-il une fonction permettant d'obtenir le nom du programme?

MODIFIER

Je suis en train de créer un programme à partir du shell, et le code ci-dessus va toujours imprimer le nom du programme (je l'utilise fedora 9, mais je suis sûr qu'il fonctionne dans d'autres distributions).

J'ai trouvé que /proc/self/répertoire peut contenir ce que je cherche, mais je ne pouvais pas trouver quoi exactement dans ce répertoire.

Que voulez-vous dire? Vous venez de dire que vous savez que le "nom du programme" est passé comme premier argument...alors quoi d'autre avez-vous besoin?
Coureur Bien la question est assez simple, si vous lisez bien la question, Il dit: "argv[0] est utilisée pour trouver le nom du programme, mais Est-il une autre fonction permettant d'obtenir le nom du programme?". N'En Déplaise : )
il n'y a pas d'infraction, juste de l'incompréhension. la paix 🙂
double possible de comment trouver l'emplacement de l'exécutable en C
La question fait beaucoup de sens à partir d'une bibliothèque de point de vue.

OriginalL'auteur BЈовић | 2010-10-27