在任务 I中:
...
while (1)
{
if (running == false)
break;
ret = read(fd, buf, size); /* Or: ret = recvfrom(sock, buf, size, 0, NULL, NULL); */
...
}
在任务二中:
...
running = true;
/* ioctl(fd, FIOCANCEL, 0); */
close(fd); /* Or: close(sock);*/
在任务 II中应该做什么来取消被阻止的任务 I,
在vxworks中,有一个功能,ioctl(fd, FIOCANCEL, 0)
可以取消阻止的读取或写入,但它不能工作。可能是因为驱动程序不支持“FIOCANCEL”。
如何在 vxworks 和 linux 中编写任务 II?还是有其他方法可以完成我的任务?