Hw2_2.c
此為輸出轉換程式(redirect)
1. 可以將標準輸出(standard output)的資料轉換至某個指定檔案內
(意即此程式可以將printf函式所要顯示的資料轉換到指定的檔案裡面)。
2. 必須給予一個參數指定要接收資料的檔案名稱
3. 用while loop 或 for loop 讓等待使用者輸入各種字串,直到輸入 “/q” 才跳出來。
4. 利用dup或是dup2函式複製標準輸出之file descriptor。
5. 參數輸入錯誤必須印出錯誤訊息,如執行範例所示。
6. 執行格式:redirect target_file
執行範例畫面
一開始在用什麼方式去存使用者的輸入文字花了蠻久的時間
因為gets(一次抓一行)沒有對boundary做檢查 所以在compiler時會有warning
後來用getchar()一個一個存到buffer
再來就是沒有搞清楚題目所謂"標準輸出"的意思
以為直接用write寫入檔案就ok了
後來經鮑魚提醒跟熱心學弟的說明
才知道是要用dup2函式將目標檔案的fd複製到standard output(1)
再利用printf將buffer內容寫入檔案
其他部份大概就是針對/p這結束字元去做判斷處理
一般來說我們在UNIX環境下一開始所能拿到的最小fd就是3
因為在預設裡:
0: standard input
1: standard output
2: standard error
所以這三個數字是被系統所先佔用
-----------------------------------------------------------------------------------
蔣老大說過 :
I/O是最難做的部份
因為你不知道使用者會不會手賤給你亂輸入什麼.....
- Mar 11 Tue 2008 22:40
[System Programming] HW2-File I/O-Part2
close
全站熱搜
留言列表
發表留言