我可以在不使用FIOCANCEL的情况下关闭VxWorks中的文件描述符吗?

时间:2018-02-05 19:24:56

标签: c++ thread-safety file-descriptor vxworks

我正在尝试在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);

1 个答案:

答案 0 :(得分:1)

这可能只是一个很小的编程错误。 close()应该可以正常工作。您应该将任务2中的running - 变量设置为false