无法运行两次execl

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

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

最佳答案

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

关于无法运行两次execl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674251/

相关文章:

c++ - 为什么从 unistd.h 调用 crypt() 函数会将 errno 设置为 ENOENT?

C:无法从文件打印

c - TCP连接双方同时发送时丢包

c - OpenSSL C API CRL 检查

c - 如何将读取 ADC 值转换为 float ?

c 同步写入 stdout 和 stderr

c - 在 C 宏中,是否应该更喜欢 do { ... } while(0,0) 而不是 do { ... } while(0)?

c++ - C 和 C++ 奇怪的语法 "unsigned int :32;"

c - #define __REDIRECT_NTH 在 unistd.h 中做了什么?

c - 在带有文件描述符的 execl 中使用 grep