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