这可能是一个简单的问题,但我想确认一下我对这些函数的理解 - 如果我完全错误的话请帮我澄清。
以下是情况描述:
我有一个多线程程序,通过管道传递数据,使用UNIX的pipe()
函数。基本上,两个线程可以写入管道(当然它们是同步的),只有一个可以从管道中读取。
据我所知,read()
命令将尝试从传递的文件描述符参数读取x
字节数,并在达到EOF
时返回0。
我写入管道的字节数是可变的,因此从管道中读取时会出现一些困难。我相信我在某个地方读到过,在close(my_pipe_file_descriptor)
中使用EOF
。如果是这样的话,read()
一旦遇到EOF
就会返回 - 这将会很好。
如果我上面说的关于close()
和read()
的东西是正确的,我有一个问题。
如果我调用close(my_pipe_file_descriptor)
,那么管道会被销毁,使得任何对open(my_pipe_file_descriptor)
的未来调用都无效吗?
我希望这讲得清楚。
wchar_t
字符,那么请记住,wchar_t
的实际类型(因此大小)是与具体实现相关的。如果写入程序和读取程序对wchar_t
有不同的定义,则它们将无法很好地配合使用。如果您遇到这个问题,请发布一个问题,并提供编写程序和读取程序的 [mcve]。 - Some programmer dude