Funkcje execl i fork() - programowanie sieciowe

0

Witam. Mam do napisania program, który jako parametr pobiera polecenie i wykonuje je (exec) w wątku dziecka.

Stworzyłem coś takiego:

 #include<stdio.h>
#include<unistd.h>
#include <sys/types.h>

int main(int argc, char *argv[])
{
        if(fork() == 0)
        {
        execl(argv[0], argv[1], NULL);
        }
return 0;
}

przy uruchomieniu na linuxie komenda ./zadanie ls
nic się nie dzieje. Z tego co rozumiem argv[1] to jest właśnie ta komenda, w powyższym przykładzie komenda ls.
Wnioskuję, że nie do końca zrozumiała dla mnie jest komenda execl i niepoprawnie jej używam. Jakieś sugestie?

0

Powinno być: execl(argv[1], argv[1], NULL);

1 użytkowników online, w tym zalogowanych: 0, gości: 1