Portál AbcLinuxu, 26. dubna 2024 16:40


Dotaz: fork + exec

16.4.2010 15:56 juris
fork + exec
Přečteno: 283×
Odpovědět | Admin
Zdravim,

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
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.4.2010 16:27 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: fork + exec
Odpovědět | | Sbalit | Link | Blokovat | Admin
A nebylo by jednodušší použít funkci system(const char *)?
I am always ready to learn although I do not always like to be taught. (W. Churchill)
19.4.2010 22:20 Sten
Rozbalit Rozbalit vše Re: fork + exec
Odpovědět | | Sbalit | Link | Blokovat | Admin

Spustit přes shell (sh -c ...) ;)

Btw. ten return -1 u nepovedeného execu 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 :)

20.4.2010 00:19 luky
Rozbalit Rozbalit vše Re: fork + exec
ked uz tak pri exit(), sa mali pouzivat hodnoty EXIT_SUCCESS alebo EXIT_FAILURE

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.