【发布时间】:2017-07-03 09:54:13
【问题描述】:
我在让 execl 工作时遇到问题。
pid_t pid = fork();
if(pid<0) {
perror("fork error\n");
} else if( pid== 0){
execl("/home/"user name"/opSys", "ps", ">>", "test.txt", (char*)NULL);
} else {
int returnStatus;
waitpid(pid, &returnStatus, 0);
}
我试图让它运行命令,然后输出到我的文本文件,但是没有任何反应。我一直在谷歌搜索并尝试我找到的东西,比如不同的高管。我已经尝试过 execlp(),我试图让它使用 ps ant 而不是将它放入文件中。
如果这个问题已经得到解答,我深表歉意,我确信它已经得到解答,但是我找不到适合我的解决方案。 提前致谢。
【问题讨论】:
-
向我解释这个
"/home/"user name"/opSys"。 -
是帖子中的拼写错误,我已修复。
-
>>是一个 shell 操作符。execl不明白这一点。它将>>传递给opSys程序而不是shell。这不是你想要的。 -
你检查
execl的返回值了吗?实际上,它只有在失败时才会返回。在这种情况下检查errno。