前几天在看apue第16章关于socket的例子,就是一个非常典型的socket服务器,关键代码如下: void serve (int sockfd) { int ret; int clfd; int status; FILE *fp; pid_t pid; char buf[BUFLEN]; for (;;) { clfd = accept (sockfd, NULL, NULL); if (clfd < 0) { syslog (LOG_ERR, "accept error: %d, %s", errno, strerror (errno)); //if (errno == EOPNOTSUPP) //{ // syslog (LOG_INFO, "retry.."); // continue; //} exit (1); } fp = popen ("/usr/bin/uptime", "r"); if (fp == NULL) { sprintf (buf, "error: %s\n", strerror (errno)); ret = send (clfd, buf, strlen (buf), 0); syslog (LOG_ERR, "write back %d for error", ret); } else { while (fgets (buf, BUFLEN,