linux之管道【代码4-1添加到日历】pipe.c

本文介绍了一个简单的父子进程间通过管道进行通信的C语言程序示例。该程序首先创建一个管道,然后通过fork()函数创建子进程。子进程关闭读端并向管道写入测试数据;父进程关闭写端并从管道读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<unistd.h>
#include<sys/types.h>
#include<errno.h>
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<string.h>

#define INPUT 0

#define OUTPUT 1
#define MAX_DATA_LEN 256

int main()
{
	int fd[2];
	pid_t pid;
	const char sendbuf[]="QST test data!";
	char rebuf[MAX_DATA_LEN];
	int count;

	if (pipe(fd)<0)
	{
		printf("pipe create error\n");
		exit(1);
	}


	if ((pid=fork())==-1)
	{
		printf("fork create error\n");
	}


	if(pid==0)
	{
		printf("in the child process...\n");

		close(fd[INPUT]);
		write(fd[OUTPUT],sendbuf,strlen(sendbuf));
		printf("child pross write: & s\n",sendbuf);
		exit(0);
	}


	else

	{
		printf("in the parent process...\n");

		close(fd[OUTPUT]);
		count=read(fd[INPUT],rebuf,MAX_DATA_LEN);
		printf("Received from child pross % d bytes:% s\n",count,rebuf);
		exit(0);
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值