linux小练习,手动实现 ps -aux | grep bash命令
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
//实现 ps -aux | grep bash命令
int main()
{
int fd [2] = {0};
int ret = pipe(fd);
if(ret < 0 )
{
perror("pipe error");
return 0;
}
pid_t pid = fork();
if(pid < 0)
{
perror("fork error");
return 0;
}else if(pid > 0)//父进程,写数据
{
close(fd[0]);//关闭读
dup2(fd[1],STDOUT_FILENO);
execlp("ps","ps","aux",NULL);
wait(NULL);
}else if(pid == 0)//子进程.读数据
{
close(fd[1]);//关闭写
dup2(fd[0],STDIN_FILENO);
execlp("grep","grep","--color=auto","bash",NULL);
}
return 0;
}