想開始研究下memcache的源碼,不知從哪下手,就從守護進程啓動開始吧,主要是比較簡單spa
/** * 守護進程啓動 * @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); }