免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3498 | 回复: 9

[函数] Linux 不支持流管道(全双工)? [复制链接]

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
发表于 2014-08-30 09:19 |显示全部楼层
看完APUE15章,准备尝试着练习一下,结果发现根本没有s_pipe这个函数,man都man不到,并且貌似getmsg,putmsg这些流相关的函数貌似也不支持。
我的系统CentOS6.4  kernel 2.6.32,网上讲Linux IPC的文章好像也没有提到过所谓的流管道
想问问Linux是不是从来就没有支持过这些?只有Unix支持?

论坛徽章:
0
发表于 2014-08-30 09:46 |显示全部楼层
某些类型的unix系统才有。一般用socketpair()就可以了。

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-08-30 09:50 |显示全部楼层
????
pipe就是流pipe吧?
全双工再来一个pipe~~

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
发表于 2014-08-30 09:55 |显示全部楼层
回复 2# Fixend
socketpair本质上就是socket吧,那就是说Linux下全双共的进程间通信,必须要用到socket了
谢谢,我又仔细又看了一下发现书上明确说了,在BSD的实现好像确实就是
  1. int s_pipe(int fd[2])
  2. {
  3.      return (socketpair(AF_UNIX, SOCK_STREAM, 0, fd));
  4. }
复制代码

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
发表于 2014-08-30 09:57 |显示全部楼层
回复 3# folklore
嗯。。。我知道你的意思用两个pipe实现全双工
APUE上说还有一个流管道,只需要一个fd[2],在同一端读写,貌似Linux并不支持这样吧

   

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2014-08-30 10:19 |显示全部楼层
Kasiotao 发表于 2014-08-30 09:57
回复 3# folklore
嗯。。。我知道你的意思用两个pipe实现全双工
APUE上说还有一个流管道,只需要一个fd[ ...

但APUE里面应该也说了,基于BSD的系统pipe应该都不是全双工

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2014-08-30 10:22 |显示全部楼层
另外,s_pipe应该是APUE为了教学另写的函数吧
其他的那些系统调用linux并没有实现

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
发表于 2014-08-30 10:34 |显示全部楼层
回复 7# cjaizss
嗯,pipe不是全双工,但它单独一章列出来我以为是专门的系统调用呢,看来搞错了。
但是它说的SVR4实现就是简单的
  1. int s_pipe(int fd[2])
  2. {
  3.     return(pipe(fd));
  4. }
复制代码
这是说明SVR4下的pipe本身就是全双工的么?
   

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2014-08-30 10:38 |显示全部楼层
Kasiotao 发表于 2014-08-30 10:34
回复 7# cjaizss
嗯,pipe不是全双工,但它单独一章列出来我以为是专门的系统调用呢,看来搞错了。
但是它 ...

是的

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
发表于 2014-08-30 10:40 |显示全部楼层
回复 9# cjaizss
明白了,谢谢,因为从来没有接触过Unix,看来看这些书的时候还要注意下不同系统的实现不能完全照搬。。。。。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP