LINUX.ORG.RU

Срочно!!!! Вызов внешней программы из C


0

0

Как сделать сабж?

Пишу:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
if (fork()) {
printf("aaaaaaaaaaa\n");
//execl( "/bin/ls","");
execl( "/bin/sh","/bin/ls");
exit(0);
}

return 0;
}

Но execl ни тот, ни другой не работает.

А если более обще, то вместо /bin/ls может быть любая
программа с аргументами.

★★★★

А внимательно прочитать man 3 exec? Там все написано: во-первых, список параметров _должен_ заканчиваться нулем, во-вторых, в общем случае, нулевой параметр - это имя программы. Так что писать по идее нужно так:

... execl("/bin/sh","/bin/ls",0); ...

anonymous
()

А внимательно прочитать man 3 exec? Там все написано: во-первых, список параметров _должен_ заканчиваться нулем, во-вторых, в общем случае, нулевой параметр - это имя программы. Так что писать по идее нужно так:

... execl("/bin/sh","/bin/ls",0); ...

anonymous
()

Огромное спасибо. Сработало execl( "/bin/ls","",0);

kraw ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.