创建了一个管道,写入数据正确,读数据失败。为什么?
情况是这样,主线程pipe了一个管道,接着创建子线程 ,主线程向管道中写入数据,成功。子线程在主线程向管道中写数据时阻塞,当主线程写完数据后通知子线程读数据,这时子线程读数据失败。为什么?谢谢
------解决方案--------------------管道管道顾名思义是一头读一头写,你是不是让两个线程读写都用一个打开的句柄啦?
------解决方案--------------------Bad address?
read的buf参数正确么?
ssize_t read(int d, void *buf, size_t nbytes);
------解决方案--------------------pipe的0 1 2 三个描述位, 分别是read, write, error.
你不要读写都用0
------解决方案--------------------为什么不把代码贴出来?
------解决方案--------------------两个线程同时对一个局柄操作了.