我正在使用xv6作業系統,我需要用一個檔案代替stdio。這通常是通過dup2系統呼叫完成的,而這個作業系統沒有這個系統。有什么變通的辦法嗎?我必須實作我自己的系統呼叫,它將試圖模仿POSIX的一個行為?或者我需要的功能(替換檔案描述符)可以在c程式中的一個普通函式中實作?謝謝。
uj5u.com熱心網友回復:
dup2( filedes, filedes2 )。
means
close( filedes2 )。
fcntl( filedes, F_DUPFD, filedes2 )。
你可以做
close(0);
dup(fd);
受到競賽條件的影響,因為dup2是原子函式,但close和dup包括兩個函式呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/334255.html
標籤:
