Re: Solved (was: Exit-Code von Shellbefehl in C auswerten)

Bernhard Walle <[email protected]>
Newsgroups gmane.linux.suse.programming
Organization SUSE Linux Producs GmbH
Message-ID <[email protected]>
Jens Nixdorf wrote:
> Am Donnerstag, 13. März 2008 schrieb Jens Nixdorf:
> 
>> int rc=0;
>> rc=system("pump -i eth0");
>>
>> Das hat nicht funktioniert, weil in rc eine 5 erscheint. Der nächste
>> Versuch war mit dem Makro WEXITSTATUS:
> 
> So, da habe ich mich schön selber verarscht. Wenn man das Programm immer 
> aus der IDE heraus startet, und dabei automatisch der Debugger läuft, 
> dann bekommt man eben nicht die richtigen Rückgabewerte. Ohne Debugger 
> schon. Hmpf. 

Du solltest aber trotzdem WEXITSTATUS() auf den Rückgabewert anwenden. Aus der Manpage:

       The  value returned is -1 on error (e.g.  fork(2) failed), and the return status
       of the command otherwise.  This latter return status is in the format  specified
       in wait(2).  Thus, the exit code of the command will be WEXITSTATUS(status).  In
       case /bin/sh could not be executed, the exit status will be that  of  a  command
       that does exit(127).

       If  the  value  of  command  is  NULL, system() returns non-zero if the shell is
       available, and zero if not.

       system() does not affect the wait status of any other children.


HTH,
Bernhard


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.