1、管道实现:
(1)代码实现:[root@localhost pipe]# cat pipe.c
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i = 0;
int aiPipe[2] = {0};
pid_t stPid = {0};
char acSendBuf[2] = {0};
char acRecvBuf[4] = {0};
if(0 != pipe(aiPipe))
{
printf("创建管道失败!\n");
return 0;
}
stPid = fork();
if(0 == stPid)
{
sleep(2);
printf("\n接收的长度是%d\n",read(aiPipe[0], acRecvBuf, sizeof(acRecvBuf)));
for(i = 0; i < sizeof(acRecvBuf); i++)
{
printf("acRecvBuf[%d]:%d\n", i, acRecvBuf[i]);
}
}
else
{
for(i = 0; i < 2; i++)
{
acSendBuf[0] = i + 1;
acSendBuf[1] = i + 1;
printf("发送长度是%d\n", write(aiPipe[1], acSendBuf, sizeof(acSendBuf)));
}
}
return 0;
}
(2)编译执行:[root@localhost pipe]# make pipe<