- 论坛徽章:
- 0
|
本帖最后由 路旁街角 于 2015-12-14 16:55 编辑
这个是父进程代码,头文件是自己搞的···很齐全- #include "public_head.h"
- int main()
- {
- int fd_rd[2];
- int pid;
- char str[MAX_TALK];
-
- pipe(fd_rd);
-
- if((pid = fork()) == 0)
- {
- close(fd_rd[0]);
-
- dup2(STDOUT_FILENO, fd_rd[1]);
-
- execlp("./child", "child", NULL);
- }
- else
- {
- close(fd_rd[1]);
-
- while(1)
- {
- if(read(fd_rd[0], str, MAX_TALK) > 0)
- printf("%s\n", str);
- }
- }
-
- return 0;
- }
复制代码 子进程代码:- #include "public_head.h"
- int main()
- {
- int i = 0;
- char str[MAX_TALK];
- while(i < 10)
- {
- sprintf(str,"server:%d\n",i);
- write(STDOUT_FILENO, str, sizeof(str));
- i++;
- }
- return 0;
- }
复制代码 应该跑起来棒棒哒,然而····除了正确的信息之外,每个信息之后都带着很长一段乱码 百思不得其解 求助!!
附带执行结果图:
|
|