linux 有名管道pipe,linux 用無名管道pipe和有名管道fifo實現線程間通信

1.pipe

用與實現同一個進程下不同線程間的通信(跟IPC進程間通信中的具有血緣關系的進程通信實現方式一樣)

#include

#include

#include

#include

#include

using namespace std;

void *func(void * fd)

{

char str[] = "this is write thread!\n";

write( *(int*)fd, str, strlen(str) );

}

int main()

{

int fd[2];

char readbuf[1024];

if(pipe(fd) < 0)

{

printf("pipe error!\n");

}

pthread_t tid = 0;

pthread_create(&tid, NULL, func, &fd[1]);

pthread_join(tid, NULL);

sleep(3);

// read buf from child thread

read( fd[0], readbuf, sizeof(readbuf) );

printf("read buf = %s\n", readbuf);

return 0;

}

2.fifo

用於實現不同進程的線程間通信。不同進程的線程間的通信等同於不同進程間的通信。

讀線程

#include

#include

#include

#include

#include

#include

#include

#include

void *func(void *fd)

{

char readbuf[1024];

read( *(int*)fd, readbuf, 30);

printf("this is Thread_read!\n");

printf("Receive message: %s\n", readbuf);

close(*(int*)fd);

}

int main()

{

int fd;

char buff[2048];

if(mkfifo("fifo", 0666) < 0 && errno != EEXIST)

{

printf("create FIFO falied!\n");

return 0;

}

fd = open("fifo", O_RDONLY);

if(fd < 0)

{

printf("open FIFO falied!\n");

}

pthread_t tid = 0;

pthread_create(&tid, NULL, func, &fd);

pthread_join(tid, NULL);

//sleep(3);

return 0;

}

//g++ -o Thread_read Thread_read.cpp -lpthread

寫線程

#include

#include

#include

#include

#include

void *func(void * fd)

{

int wri = write(*(int*)fd, "this is Thread_write", 30);

if(wri < 0)

{

printf("wirte fifo failed!\n");

}

close(*(int*)fd);

}

int main()

{

int fd = open("fifo", O_WRONLY);

if(fd < 0)

{

printf("open fifo failed!\n");

return 0;

}

pthread_t tid = 1;

pthread_create(&tid, NULL, func, &fd);

pthread_join(tid, NULL);

// sleep(3);

return 0;

}

//g++ -o Thread_write Thread_write.cpp -lpthread

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

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

相关文章

linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解

1. apache静态资源跨域访问找到apache配置文件httpd.conf找到这行#LoadModule headers_module modules/mod_headers.so把#注释符去掉LoadModule headers_module modules/mod_headers.so目的是开启apache头信息自定义模块在独立主机配置文件中新增headerHeader set Access-Contr…

linux wps历史版本下载,WPS Office 2019 For Linux 11.1.0.9604版携新更新发布下载

WPS Office 2019 For Linux 11.1.0.9604版本发布了&#xff0c;仅支持64位计算机&#xff0c;提供Deb和Rpm格式软件包下载。更新详情1、WPS公共&#xff1a;优化界面绘制相关api的调用效率。适配ibus和fcitx框架的输入法&#xff0c;解决无法输入中文&#xff0c;预输入显示等问…

Linux双独立显卡SLI,玩点新奇的 双显卡给你不同的“SLI”效果

显卡老是千篇一律的常规测试对于我们这些测试人员来说早就已经没有什么意思了&#xff0c;无非就是跑分&#xff0c;超频后跑分&#xff0c;拷机等等一些测试项目&#xff0c;常看我们测试的玩家应该也知道同芯片显卡除非是频率的差别非常大才会有较为明显的性能差距体现出来&a…

三个等价c语言表达式,C语言习题综合(20页)-原创力文档

第二章练习题—.选择题1. 以下选项中正确的实型常量2A 0 B 3. 1415 C 0.32910 D .8712.不合法的用户标识符A _123 B printf C A $ D Dim1.表达式3.51/2的计算结果是___2.对数学表达式 ,写出三个等价的c语言表达式_____}第三章 练习题一&#xff0e;选择题1.若a ,b,c都是int型变…

DSP C2000汇编语言,DSPC2000汇编指令

值。XT寄存器的低16位部分是TL寄存器。该寄存器能装载一个16位有符号数&#xff0c;能自动对该数进行符号扩展&#xff0c;然后将其送人32位XT寄存器。XT寄存器的高16位部分是T寄存器。该寄存器主要用来存储16位乘法操作之前的16位整数值。T寄存器也可以为一些移位操作设定移位…

c语言编程算法精选,c语言经典程序算法【DOC精选】.doc

c语言经典程序算法【DOC精选】c语言经典程序算法浏览次数&#xff1a;47017次悬赏分&#xff1a;15 | 解决时间&#xff1a;2007-9-14 10:02 | 提问者&#xff1a;liyufei05j3最佳答案经典C源程序100例【程序1】题目&#xff1a;有1、2、3、4个数字&#xff0c;能组成多少个互不…

android win10 驱动安装失败,解决在win10系统下小米手机驱动安装失败的具体步骤...

随着系统的升级越来越快&#xff0c;对于许多用户的系统都已经升级到win10系统了&#xff0c;win10系统在给用户带来方便的同时&#xff0c;有时候也会遇到一些小麻烦&#xff0c;比如说对于最新的Window10正式版系统而言&#xff0c;基本主流的手机驱动都能自动检测安装。不过…

z3735f android x86,英特尔的Atom Z3735F分析 全文总结_台电 X80HD_平板电脑评测-中关村在线...

硬件配置&#xff1a;英特尔64位提供性能保证台电X80HD双系统使用Intel Atom Z3735F四核处理器&#xff0c;最高睿频可达1.83GHz&#xff0c;其采用64位X86架构&#xff0c;搭载最新一代睿频加速技术&#xff0c;并拥有四核四线程&#xff0c;支持多任务同时处理。英特尔的Atom…

浏览器 android x86,360浏览器x86版下载

360浏览器x86版下载&#xff0c;是专门针对现在越来越多的win10和安卓双系统的国产平板电脑使用的安卓版app,例如台电平板&#xff0c;适用机型 适用于联想K800、联想K900、MOTO MT788、MOTO XT890、Acer联想平板等,只要安装了x86版本就可以愉快的玩耍啦&#xff0c;你还不赶快…

js百度地图android定位不准,百度地图js定位不准

浏览器H5定位即navigator.geolocation&#xff0c;通过IP或者域名的形式&#xff0c;如&#xff1a;http://172.21.3.82:8080 和http://b.cunzhang.com进行访问时&#xff0c;调用navigator.geolocation.getCurrentPosition&#xff0c;打开控制台&#xff0c;你会发现有以下错…

Android在线更新安装包,Android在线更新下载方案

目的App的在线更新是每一个项目必有的功能&#xff0c;但在过程当中会遇到一些问题&#xff0c;在此记录下心得。步骤1、将最新版本号和本地版本号进行对比&#xff1b;2、如需更新&#xff0c;则弹出更新提示对话框&#xff1b;3、下载更新APK文件&#xff0c;并显示进度条和通…

c汇编语言例题,汇编语言例题分析.doc

汇编语言例题分析汇编语言例题分析《汇编语言程序设计》练习题作者名&#xff1a;不详 来源&#xff1a;网友提供 06年6月8日一、基本概念1、8088/8086CPU内部寄存器有______个 ,其中的______是通用寄存器&#xff0c;______是基址和变址寄存器&#xff0c;______是段寄存器&a…

api网关 android,如何通过Android上的retrofit2使用Cognito Credentials调用API网关?

我在我的Android应用程序中使用retrofit2进行任何http / rest调用.现在我需要调用Amazon AWS API Gateway生成的api.AWS文档say我应该生成客户端代码抛出API网关控制台并使用类ApiClientFactory来构建请求&#xff1a;ApiClientFactory factory new ApiClientFactory();// Use…

android测光代码,常用测光表软件:Android篇

《常用测光表软件&#xff1a;Android篇》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《常用测光表软件&#xff1a;Android篇(5页珍藏版)》请在人人文库网上搜索。1、常用测光表软件&#xff1a;Android篇 在Android系统中也有经典的测光表软件。Light Meter测光表…

android怎么换小米系统更新,miui8怎么更新 miui8更新升级方法汇总

小米miui8系统已经开始测试&#xff0c;相信你的小米手机已准备好迎接新系统的到来&#xff0c;下文介绍小米miui8更新方法大全&#xff0c;一起小编一起了解下吧&#xff01;小米miui8刷机方法大全&#xff1a;一、系统推送OTA升级OTA推送升级MIUI8(需连接Wifi进行)根据微博上…

signature=800c2934bb72de8d2912c36e4444ceb9,Detection and Quantification of Stiction

摘要&#xff1a;An effective non-intrusive data-based monitoring method may reduce the cost of control loop performance maintenance by screening and short-listing those control loops or valves that need maintenance. The invention comprises a data-based, mo…

Android入门简书,android ndk开发入门随笔(一)

ndk&#xff0c;jni入门随笔因为工作缘故最近在研究jni&#xff0c;ndk方面知识&#xff0c;在此总结入坑以来的一些问题.配置环境可以在下面geogle官方看。下面是链接我一说ndk&#xff0c;jni可能小伙伴要问了这是什么&#xff0c;在此我来总结我个人的看法jni就是一个接口&a…

HTML计算机英文字母,计算机入门知识 英文字母缩写翻译 -电脑资料

PC&#xff1a;个人计算机Personal ComputerCPU&#xff1a;中央处理器Central Processing UnitCPU Fan&#xff1a;中央处理器的“散热器”(Fan)MB&#xff1a;主机板MotherBoardRAM&#xff1a;内存Random Access Memory&#xff0c;以PC-代号划分规格&#xff0c;如PC-133&a…

html语言基础tr,HTML tr 标签

HTML 标签定义和用法 标签定义 HTML 表格中的行。tr 元素包含一个或多个 th 或 td 元素。实例一个简单的 HTML 表格&#xff0c;包含两行两列&#xff1a;MonthSavingsJanuary$100TIYHTML 与 XHTML 之间的差异在 HTML 4.01 中&#xff0c;tr 元素的 "bgcolor" 是不被…

html++标签页+界面,CSS+DIV实现多标签页面。

学习时自娱自乐。index.html-----------------------无标题文档页面1页面2页面3页面4页面51111tab.css---------------------------body{margin:10px;}.selbar{width:364px;}.content{border-bottom:1px solid #0033FF;border-left:1px solid #0033FF;border-right:1px solid #…