我正在尝试在VxWorks中找到关闭/取消文件描述符(fd
)的正确方法。如示例所示,我有一个永远读取操作的任务,我有第二个任务将关闭fd
。在我的系统中,不支持FIOCANCEL
,因此我需要找到另一种方法。所以我想知道是否有人对如何从第二个任务中正确关闭fd
有一些想法?
//Task 1
while (1)
{
if (running == false)
break;
ret = read(fd, buf, size);
}
// Task 2
running = false;
/* ioctl(fd, FIOCANCEL, 0); (not supported)*/
close(fd);
答案 0 :(得分:1)
这可能只是一个很小的编程错误。 close()
应该可以正常工作。您应该将任务2中的running
- 变量设置为false
。