Portál AbcLinuxu, 12. května 2025 11:39
int process_exec(char *s)
{
pid_t pid;
pid = fork();
if (pid < 0) {
return -1;
/* child */
} else if (pid == 0) {
if (exec*(???) {
return -1;
}
}
return 0;
}
pri pouziti fork() a naslednom zavolani exec() potrebujem retazec char *s parsovat, aby som ziskal nazov a parametre programu, ktory chcem spustit. Existuje funkcia, ktora char *s transformuje na strukturu/retazec, ktore je mozne pouzit pri volani exec*()? Dakujem za rady
system(const char *)
?
Spustit přes shell (sh -c ...
) ;)
Btw. ten return -1
u nepovedeného exec
u je chybný, dítě by zůstalo běžet, mělo by tam být _exit(255)
. A taky je zbytečné testovat návratovou hodnotu :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.