//
// Created by wyy on 2024/4/7.
//
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void sys_error(const char *error) {
perror(error);
exit(1);
}
int main() {
// ls | wc -l
int fd[2];
int ret;
pid_t pid;
ret = pipe(fd);
if (ret == -1) {
sys_error("pipe error");
}
pid = fork();
if (pid == -1) {
sys_error("fork error");
} else if(pid == 0) {
printf("++++++");
close(fd[0]);
dup2(fd[1], STDOUT_FILENO);
execlp("ls", "ls", NULL);
sys_error("ddd");
} else if(pid > 0) {
printf("--------");
close(fd[1]);
// wc -l默认从stdin里读
dup2(fd[0], STDIN_FILENO);
execlp("wc", "wc", "-l", NULL);
sys_error("kkk");
}
return 0;
}
08-12
8635
12-03
3295