我创建了一个虚拟节点“/ dev / abc”,有两个应用程序a.c和b.c
a.c会将数据写入节点, b.c将从节点
中读取数据在b.c中我打开节点并使用select函数 验证节点中的数据是否可用。
我使用下面的代码检查数据。 但是,如果没有从a.c写入数据,b.c正在阅读 数据
代码:
fd_set read set;
int result;
fd=open ("/dev/abc", O_RDWR);
FD_SET (fd, &readset);
result=select (fd+1,&readset, NULL, NULL, NULL);
if(result> 0)
{
if (FD_ISSET (fd, &readset))
{
read (fd, buffer, 100);
}
}
请建议我如何使用select函数调用 上面的场景。
此致 Ajith Kumsi
答案 0 :(得分:1)
您应该在FD_ZERO()
之前致电FD_SET()
以清除readset
。这可能就是原因。 <{3}}底部附近有一个明显的例子,您可以按照它进行操作。