2011-01-08 6 views
0

Je cherche les raisons et les cas dans lesquels le dans le programme C++ renvoie -1. Je suis dans une situation où ça marche bien dans une classe où ça ne se passe pas dans une autre classe.En g ++, la fonction system() renvoie -1

+5

Publier du code. –

+5

Publiez une partie de votre code. Soit dit en passant, si vous parlez de la fonction 'system' de la bibliothèque standard (avec la première lettre minuscule), une valeur de retour de -1 ne signifie pas nécessairement qu'il y a une erreur. –

+2

system() renvoie le code de sortie du programme que vous avez appelé par l'intermédiaire de celui-ci. – Jaywalker

Répondre

5

Considérons tout d'abord comment la norme décrit la valeur de retour de la fonction system:

Si l'argument est un pointeur NULL, la fonction système retourne non nulle que si un processeur de commande est disponible. Si l'argument n'est pas null et que la fonction système renvoie, elle renvoie une valeur définie par l'implémentation.

Je suppose que votre mise en œuvre est le gnou libc, donc nous allons se référer à its documentation:

La valeur de retour est -1 s'il n'a pas été possible de créer le processus shell, et sinon est le statut du processus shell.

L'état n'est pas le résultat de la commande et peut être interprété en utilisant les outils décrits sur this page. En d'autres termes, system() ne doit jamais renvoyer -1 sauf en cas d'échec de création de processus shell.