下面是解釋dup2系統調用的代碼段。我不明白的是,在複製兩個文件描述符後,爲什麼我們需要關閉舊的文件描述符。由於「out」描述符現在被關閉,發送給stdout_fileno的消息如何被寫入「out」。請注意,代碼不是由我寫的。關閉文件描述符,然後使用它
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(){
int out;
out=open("out",O_WRONLY | O_TRUNC | O_CREAT,S_IRUSR|S_IRGRP | S_IWGRP | S_IWUSR);
dup2(out,STDOUT_FILENO);
close(out);
printf("now this should be written to a file called out \n");
return 0;
}
謝謝。這解釋了它 – DesirePRG