我從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