fork exec不能没有这样的文件或目录

时间:2014-06-05 08:43:11

标签: c linux exec fork execvp

我正在尝试创建一个简单的fork / exec程序,它将分叉子进程并执行名为program1的程序。 Program1是一个与该程序位于同一目录中的简单程序,它将输出一条消息" hello"。

Ptr是具有以下

的结构
struct Ptr {
    pid_t pid;
    char * args[MAXARGS];
}; 

其中Ptr-> args [0]设置为程序名称" program1" 和Ptr-> args [1]设置为NULL

    Ptr start (Ptr p) 
    { 

switch (p->pid = fork())
{
case -1:
    fprintf(stderr,"ERROR - %s; ", "fork error");
    return NULL;
case 0: //we are inside the child process
    p->pid = getpid();
    execvp(p->args[0], p->args);
    fprintf(stderr,"ERROR - %s; ", "execvp error");
            perror(NULL);
    exit(1);
    return NULL;
}
return p;
   } 

但错误打印是" ERROR - execvp错误;没有这样的文件或目录"

我已经确定program1和这个程序都在同一个目录中,我无法理解为什么它不会执行。有什么东西我必须与环境变量。

我无法理解为什么这么简单的事情无法奏效。

谢谢,

杰克

0 个答案:

没有答案