一项目中涉及Java与C的通信;由于C程序是现成的,而java部分是后来不上去的,故两部分仍然沿用以前C程序中的Named Pipe通信。其中使用了JNA技术,具体这里不详述。
项目中,我们碰到有个问题,发现 java程序只能从Name pipe中收到一个消息,后面写入pipe的消息就一个收不到了。经过仔细分析,发现原来程序不是建立的Pipe,而是一个普通的文件。Pipe的文件属性应该如下:
如果是文件,前面是没有那个p的。pipe的特性是read走了,文件(Pipe中)就没有了,而文件这不具备这样的特性。二,Read 数据到pipe中,必须要等有一方开始read,而 文件没有这样的特性。当然还有其它。
仅笔记之。