Chcę użyć funkcji systemowej execl, a jeden z parametrów tej funkcji ma być przekazywany jako parametr wywołania całego programu. Narazie napisałem następujący kod (okroiłem go z zbędnych rzeczy)
int main(int argc , char *argv[])
{
pid_t pid;
for (i=1; i
{
switch(pid=fork()) {
case -1:
printf ("error \n");
break;
case 0:
execl ("/bin/prog";*argv[i]);
/*tu jest jeszcze sporo kodu*/
}
}
}
Nie mogę sobie poradzić z przekazaniem parametru do funkcji exec. Wiem że exec potrzebuje parametru jako
Dziękuje za odpowiedź, wyrzuciłem niepotrzebne rzeczy z kodu (aby bylo przejrzyscie) i zastosowałem Twoją rade, kompiluje się i dziala. Jakoś zbila mnie z tropu ta dokumentacja:
Nie musisz tego tak robić, wybacz ale szybko pisałem odp. i pisząc myślałem o funkcji system. Jeśli chodzi o execl to powinno wystarczyć execl("/bin/cp", argv[1]), w pierwszym kodzie nie wiadomo dlaczego oddzieliłeś argumenty średnikiem i niepotrzebnie zastosowałeś operator *.
Dzięki, dzisiaj rano jak spojrzałem na ten kod to wszystko było jasne - ten średnik to literówka, *-bo tak było w przykladzie z manuala, jakąś dziwną mam dokumentacje exec (już ja zmieniłem, dzięki za pomoc)