匿名PIPE能否异步读写?

失落的凡凡 2011-09-02 09:02:12
我需要一个能在进程内异步通信的PIPE,但CreatePipe并没有dwOpenMode这一参数,而NamedPipe似乎又不能在进程内Connect,我在想是否有SetFileMode之类的调用可以修改文件的打开模式?或者有什么其它办法能满足我的需求?
...全文
324 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落的凡凡 2011-09-02
  • 打赏
  • 举报
回复
NamedPipe在进程内是可以连接的,是我之前把顺序弄错了 此贴散分
失落的凡凡 2011-09-02
  • 打赏
  • 举报
回复
我找到一个SetNamedPipeHandleState, 希望这个东西管用
失落的凡凡 2011-09-02
  • 打赏
  • 举报
回复
找这个东西,就是为了避免再开一个线程
zhanshen2891 2011-09-02
  • 打赏
  • 举报
回复
看了3楼的回复就知道你想干什么了,这个应该就是不行的,用别人的东西肯定就是按照人家文档写的去用,他不提供你想要的功能你只能去提意见,如果你是甲方的话,哈哈

既然不提供直接的功能可以考虑用线程自己实现一个这样的功能
失落的凡凡 2011-09-02
  • 打赏
  • 举报
回复
按照三楼的说法, 匿名Pipe是用NamedPipe实现的, 那既然NamedPipe可以实现非阻塞IO,匿名Pipe应该有机会的呀
失落的凡凡 2011-09-02
  • 打赏
  • 举报
回复
呃 可能是我描述的不清楚吧,我要的是非阻塞IO, 可以放到IOCP里去的, 异步IO和非阻塞IO好像不是一回事,不过我有一点混淆
gold_water 2011-09-02
  • 打赏
  • 举报
回复
建议LZ看下SUNXIN的讲座,有一节专门讲这个内容(进程间通讯)。
ouyh12345 2011-09-02
  • 打赏
  • 举报
回复
本地读,异地可以写
  • 打赏
  • 举报
回复
http://blog.csdn.net/caowei880123/article/details/6117746
希望对你有帮助
Eleven 2011-09-02
  • 打赏
  • 举报
回复
When a process uses WriteFile to write to an anonymous pipe, the write operation is not completed until all bytes are written. If the pipe buffer is full before all bytes are written, WriteFile does not return until another process or thread uses ReadFile to make more buffer space available.

Anonymous pipes are implemented using a named pipe with a unique name. Therefore, you can often pass a handle to an anonymous pipe to a function that requires a handle to a named pipe.

zhanshen2891 2011-09-02
  • 打赏
  • 举报
回复
管道本身难道不是异步的么????一边只管往里写,一边就读就可以了,这难道还不是异步的??
xengine-qyt 2011-09-02
  • 打赏
  • 举报
回复
不能,楼主 匿名管道不是什么SOCKET啊 啥的 底层实现就不一样,概念也不同

1,658

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧