无名管道pipe使用方法

有名管道pipe函数:int pipe(int filedes[2]); 
下面程序通过创建进程,父进程写入数据,子进程读取数据,从管道中读取数据。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>int main()
{int fd[2] = {0};int ret = pipe(fd);if (-1 == ret){perror("pipe");exit(1);}pid_t pid = fork();if (-1 == pid){perror("fork");exit(2);}if (0 == pid){//readchar buffer[32] = {0};while (1){close(fd[1]);//子进程读数据,关闭写入端if (-1 == read(fd[0], buffer, 32)){perror("read");exit(3);}if (strcmp("exit", buffer) == 0){close(fd[0]);exit(0);}}}else{//writechar buffer[32] = {0};while (1){close(fd[0]);//父进程写数据,关闭读取端scanf("%s", &buffer);if (-1 == write(fd[1], buffer, strlen(buffer))){perror("write");exit(4);}if (strcmp("exit", buffer) == 0){close(fd[1]);exit(0);}printf("recv : %s\n", buffer);memset(buffer, 0, 32);}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交换2个数值的方法

如何交换2个变量的值&#xff1f;一般来说&#xff0c;想到的方法是再找一个临时变量&#xff0c;通过一种顺序存放的方式来达到交换值的效果。 比如有a,b这2个变量。取同类型的变量temp。 temp a ; a b ; b temp ; 这样就完成了交换。但这样做的话会多使用一个temp的内存。…

mysql的char和varchar_MySQL的char和varchar

1.varchar类型的变化MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255&#xff0c;其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中&#xff0c;varchar数据类型的长度支持到了65535&#xff0c;也就是说可以存放65532个字节的…

【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?

网友问题:请问打开一个应用&#xff0c;只能选择My Mac&#xff0c;不能选择模拟器如何解决&#xff1f; 答案: 下面将问答过程记录如下&#xff1a; CHENYILONG Blog请问打开一个应用&#xff0c;只能选择My Mac&#xff0c;不能选择模拟器如何解决&#xff1f; 网友的问题 09…

typedef的使用方法

typedef是在计算机编程语言中用来为复杂的声明定义简单的别名&#xff0c;与宏定义有些差异。它本身是一种存储类的关键字&#xff0c;与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。 使用typedef为现有类型创建别名&#xff0c;定义易于记忆的…

SQL Server CLR全功略之一---CLR介绍和配置

Microsoft SQL Server 现在具备与 Microsoft Windows .NET Framework 的公共语言运行时 (CLR) 组件集成的功能。CLR 为托管代码提供服务&#xff0c;例如跨语言集成、代码访问安全性、对象生存期管理以及调试和分析支持。对于 SQL Server 用户和应用程序开发人员来说&#xff0…

mysql select 子查询_SELECT中常用的子查询操作

MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句、DML语句中也都会常用到子查询。 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中; 在特定情况下,一个查询语句的条件需要另一个查询语句来获取,内层查询(inner query)语…

视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

说好的给园子里的朋友们录制与《ASP.NET MVC 使用 Petapoco 微型ORM框架NpgSql驱动连接 PostgreSQL数据库》 这篇博客相对应的视频&#xff0c;由于一个月一来没有时间录制&#xff0c;今天我兑现了给朋友们的承诺。。 本次视频教程的目录为 视频、代码、资料&#xff0c;其中视…

ARM中各始终之间的关系,FCLK HCLK PCLK的关系

ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3); ChangeClockDivider(key, 12); 1&#xff09;FLCK、HCLK和PCLK的关系 S3C2440有三个时钟FLCK、HCLK和PCLK s3c2440官方手册上说P7-8写到&#xff1a; FCLK is used by ARM920T…

CSS垂直居中总结

原文:CSS垂直居中总结工作中遇到垂直居中问题&#xff0c;特此总结了一下几种方式与大家分享。本文讨论的垂直居中仅支持IE8 1、使用绝对定位垂直居中 <div class"container"><!--<div class"floater"></div>--><div class&quo…

mysql添加表字段脚本_mysql数据库修改字段及新增字段脚本

1.修改字段的长度ALTER TABLE MODIFY COLUMN 字段名 数据类型(修改后的长度)例句&#xff1a;ALTER TABLE test_table MODIFY COLUMN id INT(20)2.修改字段的名称alter table change 。例句&#xff1a;ALTER TABLE test_table CHANGE attence_name NAME VARCHAR(20)3.新增字…

java transient简单介绍

我们都知道一个对象仅仅要实现了Serilizable接口&#xff0c;这个对象就能够被序列化&#xff0c;java的这样的序列化模式为开发人员提供了非常多便利&#xff0c;我们能够不必关系详细序列化的过程&#xff0c;仅仅要这个类实现了Serilizable接口&#xff0c;这个的全部属性和…

struct和typedef struct区别

分三块来讲述&#xff1a;   1 首先&#xff1a;//注意在C和C里不同     在C中定义一个结构体类型要用typedef: typedef struct Student{int a;}Stu; 于是在声明变量的时候就可&#xff1a;Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)     这里…

单元测试代码:SpringTest+JUnit

2019独角兽企业重金招聘Python工程师标准>>> /*** JUnit单元测试父类&#xff0c;配置了Spring的基础环境。 <br/>* 可以作为Controller、Service、Dao单元测试的父类。* * author leiwenfansunion.cn*/ public class JUnitTestBase {public static XmlWebApp…

mysql类 php100_php mysql 类

1 <?php2 /**3 * MySQL 数据库操作工具类, 方便数据库操作.4 * 示例见底部注释.5 * author: fuck me every day6 */7 class Mysql{8 var $conn;9 var $query_list array();10 public $query_count 0;1112 public function __construct($c){13 if(!isset($c[port])){14 $c…

SQL Server 索引和表体系结构(三)

SQL Server 索引和表体系结构&#xff08;三&#xff09; 原文:SQL Server 索引和表体系结构&#xff08;三&#xff09;包含列索引 概述 包含列索引也是非聚集索引&#xff0c;索引结构跟聚集索引结构是一样&#xff0c;有一点不同的地方就是包含列索引的非键列只存储在叶子节…

简单了解线程和进程、多进程和多线程、并发和并行的区别

一&#xff1a;线程与进程 1.概念 线程&#xff1a;是程序执行流的最小单元&#xff0c;是系统独立调度和分配CPU&#xff08;独立运行&#xff09;的基本单位。 进程&#xff1a;是资源分配的基本单位。一个进程包括多个线程。 2.区别&#xff1a; 1.线程与资源分配无关&…

jdbc mysql demo_JDBC_demo:java连接mysql过程

1.任何数据库驱动程序都提供对java.sql.Driver接口的驱动类&#xff0c;mysql-connector-java-5.1.39-bin.jar中Driver&#xff1a;packagecom.mysql.jdbc;importjava.sql.DriverManager;importjava.sql.SQLException;public class Driver extendsNonRegisteringDriverimplemen…

Java中发邮件的6种方法

2019独角兽企业重金招聘Python工程师标准>>> 1.官方标准JavaMail Sun&#xff08;Oracle&#xff09;官方标准&#xff0c;功能强大&#xff0c;用起来比较繁琐。 官方资料&#xff1a;http://www.oracle.com/technetwork/java/javamail/index.html 2.第三方实现…

查询字符串某个字符的个数

select len(05011045)-len(replace(05011045,0,))转载于:https://www.cnblogs.com/zwc-blog/p/3787888.html

假定Csomething是一个类,执行下面这些语句后,内存里创建了几个Csomething对象

假定Csomething是一个类&#xff0c;执行下面这些语句后&#xff0c;内存里创建了几个Csomething对象 Csomething a(); Csomething b(2); Csomething c[3]; Csomething &ra b; Csomething d b; Csomething *pA c; Csomething *p new Csomething(4); Csomething a();/…