Funkcje execl i fork() - programowanie sieciowe

Funkcje execl i fork() - programowanie sieciowe
R9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

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

Stworzyłem coś takiego:

Kopiuj
 #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?

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.