0
我需要幫助瞭解文件描述符如何恢復標準輸出的文件描述符?
因此,這裏是我的代碼:
int main()
{
char ch;
close(1);
//now opening a file so that it gets the lowest possible fd i.e. 1
int fd=open("txt",O_RDWR);
//check..
printf("first printtf is executed\n");
scanf("%c",&ch);
printf("ur value is %c\n",ch);
printf("second printf is executed\n");
return 0;
}
在上面的程序
,我試過的printf
輸出重定向到txt
文件,而不是標準輸出,即終端。 但如何恢復標準輸出文件描述符,以便printf
再次工作對於第二種情況爲正常,即第二printtf
應該給僅輸出終端..
當DUP() - 荷蘭國際集團就「回」你必須使用DUP2複製的文件描述符__on__先前打開並關閉的'1'。 – Eregrith 2012-02-09 10:54:54
如果你關閉FD不會重複仍然做? (沒有一個手冊頁方便檢查dup2) – John3136 2012-02-09 10:57:11
嗯,對吧,也許dup()會將它重複爲1 ...我認爲它需要一個嘗試! – Eregrith 2012-02-09 11:04:21