【发布时间】:2016-10-26 17:19:45
【问题描述】:
我为子进程和父进程之间的 pipe() 编写了这段代码。我需要确保这是否是正确的代码。顺便说一句,它给出了应该看到的答案!
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char *argv[]){
pid_t pid;
int fd[2];
char buf[20];
pipe(fd);
switch(pid = fork()){
case -1:
perror("pipe");
exit(1);
case 0:
/*child process*/
close(fd[1]);
read(fd[0], buf, 20);
printf("Child read message from parent: %s\n", buf);
exit(1);
break;
default:
/*parent process*/
close(fd[0]);
write(fd[1], "Hello from parent\n", 17);
break;
}
return 0;
}
【问题讨论】:
-
这不是一个代码审查网站。你有什么问题?
-
实际上我需要验证是否有任何最佳实践来编写此类代码。我是这个操作系统的绝对初学者。
标签: c operating-system