C: system() a vyst. chybovy kod.

Michal Kolesar kolisko na penguin.cz
Sobota Říjen 28 15:20:37 CEST 2000


Zdravim!

Protoze se tento dotaz tyka i Linuxu, posilam ho i do teto konference.
V C absolutne neumim. Je to muj prvni program.

Chci udelat program v C (neptejte se proc, proste musi byt v C),
ktery neudela nic jineho, nez to, ze parametry vezme a spusti je v shellu.
Pak na stderr vypise stderr tohoto spousteneho programu.

Ukazme si na prikladu:

program si pojmenujme 'ex'.

$ ./ex program1
prave byl spusten program 'program1'
$ echo $?
0

$ ./ex neexistprog
sh: program neexistprog neexistuje - proste shellova chyba
$ echo $?
127 - nebo nenulove cislo.



So my program ex.c:
------------------------------
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

char prikaz[255];
int I;

int main(int argc, char **argv){
strcpy(prikaz, "");
for (I=1; I < argc; I++){
strcat(prikaz, argv[I]);
strcat(prikaz, " ");
}
system(prikaz);
return(errno);
}

---------------------------------
after I compile (gcc -o ex ex.c) this program.
all is fine.. I could execute all programs with parameters.
But when I execute wrong program:
-----------------------
$ ./ex sldkfjsldjf
sh: bad command or filename!
--------------------------
and then I try errnumber I get
----------------------
$ echo $?
0  -  zero, that is no goood!!!
---------------------
I get 0, It is no good. That mean no error.

when I try without 'ex' program execute only wrong command 'sldkfjsldjf':

-------------------
$ sldkfjsldjf
sh: bad command or filename!
$ echo $?
1

answear please on my email

what is wrong in my ex.c?
Please help me.
Thank You!
Michal Kolesar
kolisko na penguin.cz





Další informace o konferenci Linux