假设我想生成一个进程并运行execv以执行命令,就像ls这样我就是这样做的:
char * const parm[] = { "/usr/bin/ls","-l" , NULL };
if ((pid = vfork()) == -1)
perror("fork error");
else if (pid == 0)
{
execv("/usr/bin/ls", parm);
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我在这里硬编码了ls命令所在的位置(/usr/bin/ls).现在假设我不知道特定命令在哪里并且想要执行它然后我该怎么做呢?我知道在常规shell PATH中查找变量以实现相同,但是在使用C程序的情况下execv如何实现它?