У меня проблемы с execvp и fork. Когда я запускаю код, exec не работает, даже когда файл создан. Он просто возвращает ошибку «Неверный адрес». Кроме того, printf («в дочернем элементе») не появляется, когда я его запускаю. Как мой код может получить execvp без печати «в дочернем»?
pid = fork();
switch(pid) {
case -1:
fprintf(stderr,"ERROR WITH FORK\n");
exit(1);
break;
case 0:
printf("in the child");
fd = open(filename,O_CREAT | O_APPEND,0777);
if(dup2(fd,1) < 0)
{
fprintf(stderr,"dup error: %s",strerror(errno));
}
if(execvp(command,args) == -1) //is null terminated
{
fprintf(stderr,"exec error %s\n",strerror(errno));
}
break;
default:
wait(NULL);
break;
printf
. Заставьте его напечатать"in the child\n"
, чтобы увидеть вывод. - person Kerrek SB   schedule 21.10.2013fd
действителен? - person Kerrek SB   schedule 21.10.2013