#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int pipe_test[2];
int main()
{
pid_t pid;
char buffer[32];
memset(buffer, 0, 32);
if(pipe(pipe_test) < 0)
{
printf("Failed to create pipe!\n");
return 0;
}
if(0 == (pid = fork()))
{
close(pipe_test[1]);
sleep(3);
if(read(pipe_test[0], buffer, 32) > 0)
{
printf("Receive data from server, %s!\n", buffer);
}
close(pipe_test[0]);
}
else
{
close(pipe_test[0]);
if(-1 != write(pipe_test[1], "hello", strlen("hello")))
{
printf("Send data to client, hello!\n");
}
close(pipe_test[1]);
waitpid(pid, NULL, 0);
}
return 1;
}
管道的例子
最新推荐文章于 2024-09-05 15:21:52 发布
本文介绍了一个简单的父子进程间使用管道进行通信的C语言程序示例。该程序通过fork创建子进程,并利用pipe函数建立管道连接,父进程写入数据到管道,子进程从管道读取数据,展示了基本的进程间通信机制。
912

被折叠的 条评论
为什么被折叠?



