| menp9999 回复于:2003-03-20 12:41:42
|
我倒,怎么回事情呀?我发的时候是对齐的,怎么出来就不对齐了呢?
|
| 无双 回复于:2003-03-20 13:13:40
|
发言时上面有code 按钮
你点一下就可以了
另外这样使用也是可以的
但是无名pipe 的性能比socket要高
还有就是无名pipe 只可以在一个进程内使用
而socket则可以在多进程间互访
另外使用socket时可能有端口已被使用的可能性
而无名pipe没有
当然使用socket的好处就是
如果是TCP的话
可以发送无限大数据而不混乱
而无名pipe 只保证在一定数目下的定是原子操作
一般是4096字节
如果想更大要使用其它的进程同步机制
|
| menp9999 回复于:2003-03-20 14:56:04
|
[quote:59c3f3172e="无双"]发言时上面有code 按钮
你点一下就可以了
另外这样使用也是可以的
但是无名pipe 的性能比socket要高
还有就是无名pipe 只可以在一个进程内使用
而socket则可以在多进程间互访
另外使用socket时可能有端?.........[/quote:59c3f3172e]
不对吧,无名PIPE不可以用在父子进程么?象我那么用无名SOCKET是不能用在其他进程的,也只能在父子进程中使用.
|
| 无双 回复于:2003-03-20 18:27:35
|
可以
写错了
没有考虑父子进程间情况
如果不是父子进程的话是不可以的
|
| 蓝色键盘 回复于:2003-03-21 10:51:28
|
呵呵,你们两个讨论的如此激烈!我来说几句吧!
1、在unix环境下,利用pipe或类似pipe的机制来实现ipc的有如下几种:
半双工pipe、fifos、全双工流管道和命令流管道。
2、其中楼主的意思是想通过socket机制实现半双工pipe,就你上面的代码是不能实现的。事实上,在大多数unix系统中半双工pipe和fifos是基于文件系统的实现的,全双工流管道和命令流管道基于unix域流套节字实现的。(我说的是大多数,比如有些unix系统用文件系统机制实现双工流)。
3、半双工pipe只能在具有共同的祖先的进程之间传递数据,例如父子进程间。
4、将你的上面的代码更改为域socket,可以实现类似于半双工pipe得功能,也可以实现全双工。
|