在Linux上调用select读取文件并将套接字设置为非阻塞时,应该期待什么?readfds will be watched to see if characters become available for reading (more precisely, to see if a readwill not block; in particular, a file descriptor is also ready on end-of-file)
如果套接字是非阻塞的,它不应该阻塞,应该立
当在read(fds[0]...)中分叉某个特定进程时,下面的代码有时会阻塞spawn()中的spawn()。read(fds[0], ...) in spawn()不应该阻塞。一旦调用read,管道的所有写入端都已关闭,这将导致read立即返回。这里的问题是,我确实偶尔看到read()阻塞。,尽管这两段代码至少应该导致为管道文件描述符设置原子化的FD_CLOEXEC。例如,在这里分叉'ls‘不阻塞,或者块