我需要实现ps-auxj、grep“用户id”和wc。我已经有了字数,但我不知道如何做其他人,而他们有参数。这就是我目前所拥有的。

int main() {
int pfd[2];
int pid;

if (pipe(pfd) == -1) {
    perror("pipe failed");
    exit(-1);
}
if ((pid = fork()) < 0) {
    perror("fork failed");
    exit(-2);
}
if (pid == 0) {
    close(pfd[1]);
    dup2(pfd[0], 0);
    close(pfd[0]);
    execlp("wc", "wc", (char *) 0);
    perror("wc failed");
    exit(-3);
}
else {
    close(pfd[0]);
    dup2(pfd[1], 1);
    close(pfd[1]);
    execlp("ls", "ls", (char *) 0);
    perror("ls failed");
    exit(-4);
}
exit(0);

}
任何正确方向的帮助都是很好的。

最佳答案

exec提供了有关如何向exec函数族传递参数的详细信息。
例如

execl("ls", "ls", "-l",(char *) 0);

你可以从那里选择任何适合你的东西。

关于c - C代码中的Unix命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19671192/

10-12 15:59