dup2 -- 2




daemon 进程关于 daemon 进程的介绍及创建以及需要注意的药店,请参考:daemon 守护进程 信号处理初始化nginx 有一个全局变量 signals,在 build configure 的时候写入到 os 目录下的 ngx_process.c 文件中,在不同的系统中取值不同,用来定义默认的信号处理方式// struct ngx_signal_t // 信号结构 {{{ typedef struct { int signo; char *signame; char *name; void (*handler)(int signo); } ngx_signal_t; // }}} // ngx_signal_t signals // 信号默认处理方式 {{{ ngx_signal_t signals[] = { { ngx_signal_value(NGX_RECONFIGURE_SIGNAL), "SIG" ngx_value(NGX_RECONFIGURE_SIGNAL), "reload", ngx_signa
#技术帖    #linux    #network    #c语言   
dup 与 dup2dup和dup2两个函数可以复制现存的文件描述符int dup (int fd) int dup2 (int fd1,int fd2); dup 为fd通过复制(不关闭旧的文件描述符)分配新的文件描述符,该函数一定分配的是当前可用文件描述符中的最小数值dup2 使用 fd1 (必须为已打开的合法filedes) 来代替 fd2,如该值已经存在,则先将其关闭再复制,如fd1与fd2两个参数相等,则返回fd2但不关闭函数返回的新文件描述符与被复制文件描述符共享同一个文件表项,因此他们共享同一个文件状态标志及同一个当前文件偏移量 fcntl函数dup2 (fd1, fd2); 等效于close (fd2); fcntl (fd1, F_DUPFD, fd2);  他们的区别在于 dup2是原子操作 dup2和fcntl有某些不同的errno fcntl有更加强大的功能,可以参看:fcntl函数 -- 功能强大的文件状态操作函数  var CODE_DIVS=[{"id":"editor_b","mode":"c_cpp"},{"id":"editor_c","mode":"c_cpp"},{"id":"editor_e
#读书笔记    #技术帖    #linux    #unix   



京ICP备15018585号