我正在尝试创建一个简单的程序来执行基本的 外壳命令。问题是 execve 每次都挂起。
代码如下:
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;
}
最佳答案
第一个参数应该是您执行的二进制文件的完整路径:
char* arglist[]={"/bin/ls", "-l", NULL};
关于使用 execve 调用 ls 和其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026838/