不能跑两次excel

时间:2012-03-12 20:23:40

标签: c unistd.h

如果我尝试执行这些命令:

int main(int argc, char* argv[])
{
    execl("/bin/echo","echo","list ","of", "files:\n",NULL);
    execl("/bin/ls","ls","-al",NULL);
    return 0;
}

只有第一个被执行,为什么?

3 个答案:

答案 0 :(得分:4)

因为只要您运行exec*() ,您的应用就会停止现有。如果您想运行多个外部流程,则需要fork()

答案 1 :(得分:4)

execl替换当前进程 - 它不是子例程。您可以尝试使用system()代替。

答案 2 :(得分:1)

你需要先分叉。

尝试运行

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;
}