摘要:常用的是: int inet_aton(const char *cp, struct in_addr *inp); in_addr_t inet_addr(const char *cp); char *inet_ntoa(struct in_addr in);
阅读全文
摘要:kill():既可以给自己发送信号,也可以给其他进程发送信号 raise():只能给自己发送信号
阅读全文
摘要:signal()和sigaction()都是信号安装函数
阅读全文
摘要:信号忽略 signal(SIGCHLD, SIG IGN):父进程忽略子进程的退出 这也是避免僵尸进程的一个方法
阅读全文
摘要:方法1: 直接调用系统函数:daemon(1,1) 参数说明: 非零:表示改变 0:表示不改变 方法二中参数刚好是错的,写反了 方法2:自己写后台守护进程
阅读全文
摘要:void *pth_fun(void *pth_arg) { int fd; fd = open("./hello", O_RDWR|O_CREAT|O_TRUNC, 0664); if (fd == -1) print_err("./hello", __LINE__, errno); while(
阅读全文
摘要:在父进程中,使用下面函数以后,父进程对子进程不进行回收,让操作系统去回收 signal(SIGCHLD,SIG_IGN); 如果主线程对子线程,不进行回收的时候,采用子线程和主线程分离,分离以后由操作系统去回收 pthread_detach(pthread_self());
阅读全文
摘要:int optval=1; setsockopt(lfd,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval));//复用端口
阅读全文
摘要:syscall(SYS_gettid)和pthread_self()获取的线程id不一样 syscall(SYS_gettid):在linux下这个和ps -eLf查出来的结果是一致的 gettid()是linux内核实现的函数,在内核看来任何线程也是一个轻量级进程,从下面内核实现的sys_gett
阅读全文