想开始研究下memcache的源码,不知从哪下手,就从守护进程启动开始吧,主要是比较简单
/** * 守护进程启动 * @param nochdir 是否切换到根目录 * @param noclose 是否关闭标准IO * @return */ int deamonize(int nochdir, int noclose) { int fd; switch (fork()) { //unistd.h //fork出错 case -1: return (-1); //子进程 case 0: break; //父进程 default: _exit(EXIT_SUCCESS); } if (setsid() == -1) { return (-1); } if (nochdir == 0) { if (chdir("/") != 0) { perror("chdir"); return (-1); } } if (noclose == 0 && (fd = open("/dev/null", O_RDWR, 0)) != -1) { if (dup2(fd, STDIN_FILENO) < 0) { perror("dup2 stdin"); return (-1); } if (dup2(fd, STDOUT_FILENO) < 0) { perror("dup2 stdout"); return (-1); } if (dup2(fd, STDERR_FILENO) < 0) { perror("dup2 stderr"); return (-1); } } return (0); }