打印管内容屏幕
问题描述:
我使用execlp()
执行的子进程的命令,并保存到一个管道由家长本身例如打印管内容屏幕
int pipefd[2];
if (pipe(pipefd)) {
perror("pipe");
exit(127);
}
if(!fork()){
close(pipefd[0]);
dup2(pipefd[1], 1);
close(pipefd[1]);
execlp("ls", "ls", NULL);
} else {
close(pipefd[1]);
dup2(pipefd[0], 0);
close(pipefd[0]);
execlp("wc", "wc", NULL);
}
读取在某些情况下,家长不必执行任何操作,只是将管道内容打印在屏幕上,如何在屏幕上打印管道(可能由于未知输出大小而不存储到变量中)。
答
我怎么能打印管上[中] [该内容]屏幕
read()
从字节管道字节和printf("%d\n", byte);
,直到管道是空的,也就是说直到read()
返回0
。
如果你能为char
连续使用printf("%c", byte);
int
(每行一个如上图所示),但