匿名管道问题,怎么写入? 要从管道里ReadFile 读出信息需要先关闭其hWrite句柄,要不然就卡在哪了,这是为什么?关闭之后再怎么往里写东西,做交互呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 VisualEleven 于 2013-02-05 09:19:49 编辑 看一下这个例子 创建一个子exe 然后用管道将文件读到stdout! CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0)WriteFile(hChildStdinWr, chBuf, dwRead, &dwWritten, NULL)MSDN上有完整的例子 我先把1楼这个例子运行一下看看。我原来弄的程序里,创建完管道之后createthread(0,"ping 127.0.0.1", ... 如果不关闭hWrite句柄直接从管道里读数据的话,就会卡在那里,这是怎么回事呢? A pipe is a section of shared memory that processes use for communication.用于进程通信的! 这个是进程间通信的方法之一简单理解就是2个exe之间 Quote: 引用 8 楼 arpnet99 的回复:这个是进程间通信的方法之一简单理解就是2个exe之间[/quote我都说了,那个地方是写错了,我本来是想写createprocess 汗,引用又弄错了。我都说了,那个地方是写错了,我本来是想写createprocess 1楼给的例子看得我好纠结这一篇代码里有两个main()函数。我开始以为后面那个main是多余的,注释起来了,发现弹窗提示Error,说找不到指定文件。把createprocess的Cmdline改成“cmd”,创建进程成功,可是仍然提示Error,说请指定一个输入文件。我想第二个main的那部分代码应该是编译成child.exe的,我就编译成child.exe之后放到刚才的那个工程目录下。再把“cmd”改回“child”,运行一下,和上次一样,创建进程成功,可还是Error:请指定一个输入文件。您这个例子到底要肿么改才能演示一下效果?? 没人回帖了,整个版都没人回帖我后来发现1楼发的代码和msdn上的基本上一致,略有改动。msdn上的有说明。后来也看到了正确的结果和过程。可是我还是不明白一开始说的那个问题:例如 http://blog.sina.com.cn/s/blog_692ee0b90100jf4w.html这个是我刚找的,跟我用的方法如出一辙这里边是先把hWrite句柄关闭,然后才能读,这是什么原因呢?msdn里的那个例子里既有读也有写,可是不会卡住,这又是为什么?关键在哪里? 终于理解了解决方案和项目之间的关系了 关于标签页的问题 字符串连接!!! 哪里有vc连接数据库的示范代码? 关于Date time Picker 的问题,请大家帮忙 请教ReadFileEx函数的用法 说一下你对《 深入浅出MFC 》2e 的看法 为什么双击时,OnBnClicked(...)会处理两次! 请问各位IDL文件如何编译 关于new操作符的一个问题,急用!!! cedit追加的字符串中包含空字符串的话??? 求教Com事件回调
MSDN上有完整的例子
我先把1楼这个例子运行一下看看。我原来弄的程序里,创建完管道之后createthread(0,"ping 127.0.0.1", ... 如果不关闭hWrite句柄直接从管道里读数据的话,就会卡在那里,这是怎么回事呢?
简单理解就是2个exe之间
我都说了,那个地方是写错了,我本来是想写createprocess
我开始以为后面那个main是多余的,注释起来了,发现弹窗提示Error,说找不到指定文件。
把createprocess的Cmdline改成“cmd”,创建进程成功,可是仍然提示Error,说请指定一个输入文件。
我想第二个main的那部分代码应该是编译成child.exe的,我就编译成child.exe之后放到刚才的那个工程目录下。再把“cmd”改回“child”,运行一下,和上次一样,创建进程成功,可还是Error:请指定一个输入文件。您这个例子到底要肿么改才能演示一下效果??
msdn上的有说明。后来也看到了正确的结果和过程。可是我还是不明白一开始说的那个问题:
例如 http://blog.sina.com.cn/s/blog_692ee0b90100jf4w.html这个是我刚找的,跟我用的方法如出一辙
这里边是先把hWrite句柄关闭,然后才能读,这是什么原因呢?msdn里的那个例子里既有读也有写,可是不会卡住,这又是为什么?关键在哪里?