同步有阻塞和非阻塞之分,异步没有select、poll、epoll,都是同步IO如果使用epoll的边缘触发模式,在收到通知时,必须使用非阻塞I/O,并且必须循环调用read或write多次,直到返回EWOULDBLOCK为止,然后再调用epoll_wait等待操作系统的下一次通知为什么epoll的边缘触发模式不能使用阻塞I/O?很显然,边缘触发模式需要循环读/写一个文件描述符的所有数据。如果使用
第一次fork是为了脱离父进程,setsid让子进程变成sessionleader第二次fork是因为sessionleader有可能会获取控制终端,这样终端断开会发送信号到该进程,导致退出在centos7.6上测试,setsid之后就无法获取/dev/tty,因此有些系统上第二次fork不是必须的在centos7.6上测试,子进程未setsid之前,可以获取/dev/tty,但是被init进程接
1:重新定义stdin和stdoutdup2(cgi_output[1],1);dup2(cgi_input[0],0);2:execl继承父进程的stdin/stdout/stderr
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号