如果我尝试执行这些命令:
int main(int argc, char* argv[])
{
execl("/bin/echo","echo","list ","of", "files:\n",NULL);
execl("/bin/ls","ls","-al",NULL);
return 0;
}
只有第一个被执行,为什么?
因为一旦你运行exec*()
你的应用程序就会停止现有的. 如果要运行多个外部进程,则需要fork()
.
execl 替换当前进程——它不是一个子程序。您可以尝试system()
改用。
你需要先分叉。
尝试运行
int main(int argc, char* argv[])
{
if( vfork() == 0 )
execl("/bin/echo","echo","list ","of", "files:\n",NULL);
if( vfork() == 0 )
execl("/bin/ls","ls","-al",NULL);
return 0;
}