C代码中的Unix命令

时间:2013-10-29 23:38:49

标签: c unix

我需要实现ps -auxj,grep“user 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);

}

任何正确方向的帮助都会很棒。

1 个答案:

答案 0 :(得分:3)

exec提供了有关如何将参数传递给exec函数族的详细信息。 e.g。

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

你可以选择那些适合你的人。