使用execve调用ls和其他

时间:2015-12-01 17:51:30

标签: c

我试图创建一个允许执行基本的简单程序 shell命令。问题是每次都会挂起。

下面是代码:

    char* arglist[]={"ls","-l",NULL};
    char* env[]={NULL};
    int status;
    while (1)
    {
        if (fork() != 0)
        {
            waitpid(-1, &status, 0);
        }
        else
        {
            execve(arglist[0],arglist,env);
        }
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

第一个参数应该是您执行的二进制文件的完整路径:

char* arglist[]={"/bin/ls", "-l", NULL};