我从APUE这个代码片段,为什么dup2能在这里工作?
if (dup2(clfd, STDOUT_FILENO) != STDOUT_FILENO ||
dup2(clfd, STDERR_FILENO) != STDERR_FILENO) {
syslog(LOG_ERR, "ruptimed: unexpected error");
exit(1);
}
这将重定向所有输出,标准错误和标准输出到远程套接字,这是通过clfd写。
但是,这是如何工作的?你将两个FD重定向到一个FD。
我很难想象为什么你会认为这是一个问题。将p存储到q和r中并没有什么不同。 – 2012-08-07 09:50:22