ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c-如何从管道读取多头?

2019-11-02 12:51:10  阅读:189  来源: 互联网

标签:c-3 linux c-4 pipe


这涉及进程间通信中的未命名管道.
我有一个管道,一个进程在其中存储一个值,另一个进程要读取此值,该值是整数或整数.

这里很好地描述了http://tldp.org/LDP/lpg/node11.html如何在C中创建管道.我的问题是如何从管道读取long或int.

从上述页面中提取:

/* Read in a string from the pipe */
int nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
printf("Received string: %s", readbuffer);

好吧,在Generell中,我不知道如何在C中处理管道(就像文件一样?),以及如何从中读取字符串以外的数据.

解决方法:

您不能“真正”从管道中读取大量内容.您从管道读取了一系列字节,如果可以定义一些协议,这些字节代表较长的时间,那么您已经读取了很长的时间.

假设管道的两端长期使用相同的存储表示形式,如果它们是使用相同的编译器针对相同的体系结构编译的,或者针对不同的编译器但使用相同的ABI进行编译,则可以这样写: fd,& src_long,sizeof(long));一端读取(fd,& dst_long,sizeof(long));在另一端.加上或减去通常的混乱,以确保I / O不会尽早完成.

标签:c-3,linux,c-4,pipe
来源: https://codeday.me/bug/20191102/1991500.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有