我正在开发一个具有严格定时要求的Linux/C应用程序。我想打开一个不阻塞I/O的读取目录(即,只有当信息在缓存中立即可用时才能成功)。如果这个请求会阻塞I/O,我想知道,这样我就可以暂时中止和忽略这个目录。我知道open()有一个非阻塞选项O_NONBLOCK。它有以下警告:
Note that this flag has no effect for regular files and
A "slow" device is one where the I/O call may block for an indefinite time, for example, a terminal,如上所述,对以下接口(读、写)的阻塞调用被信号处理程序中断,如果使用了SA_RESTART标志,则在信号处理程序返回后,调用将自动重启,这意味着在读/写系统调用被阻塞的情况下,进程必须处于TASK_INTERRUPTIBLE但是,当我试图查找将进程置于