Unix Linux 程式設計實踐教程第六章習題

2021-09-26 14:38:04 字數 963 閱讀 3759

tips:這一章習題倒是少,練習題多到頭皮發麻。。。程式設計練習 6.3 中的毫秒應該是寫錯了,是百毫秒

6.1tr命令用於轉換或刪除檔案中的字元,詳細的用法可以參考

linux tr命令,至於不接受命令行指定檔案,我想是因為標準輸入輸出可以被重定向到任何型別的鏈結上,包括檔案,所以沒有必要接受命令行指定檔案。這樣只考慮標準輸入輸出降低了程式編寫的難度,相應的,使用者使用起來就相對麻煩一些,當然,這只是我的猜測,可能不對。除了tr,還有colrm工具。

對於磁碟檔案而言,設定o_nodelay僅僅改變了檔案描述符屬性的乙個 bit,除此之外沒有任何影響,這是因為磁碟檔案在任何時候都是可讀可寫的,這在posix標準中有明確說明。阻塞和非阻塞的區別在於請求不能立即得到應答,需要等待,那就是阻塞;否則可以理解為非阻塞,根據上面的定義,磁碟檔案本來就是非阻塞的,所以o_nodelay沒有意義。

對於socket而言,網路上的資料到達的時間是不確定的,不是任何時候都有資料的,和磁碟檔案不一樣,這種情況下設定o_nodelay才有意義。

tips:這道題以我目前的水平回答的還不是很準確,主要是總是把非阻塞非同步混為一同,比如給磁碟檔案設定o_nodelay就有種效率肯定提公升了,是非同步操作的感覺,其實這是錯誤的,處理 io 的時候,阻塞和非阻塞都是同步 io,實際上要解決大量讀寫磁碟檔案的問題,只有使用多執行緒或者非同步io。

參考資料:

non-blocking i/o with regular files)

怎樣理解阻塞非阻塞與同步非同步的區別?

為什麼用non-blocking的方式讀寫磁碟檔案無意義?

Unix Linux程式設計實踐教程 pwd

created by eddie on 2020 3 16.include include include include include include include ino t get inode char fname return info.st ino void inum to name ...

unix linux程式設計實踐教程讀後感(2)

從最開始的who命令,然後cp,ls,pwd等等,都是根據這是什麼?能幹什麼?怎麼實現的?由這三個問題來驅動程式設計學習。這三個命令其實也是大同小異,拋開具體的業務邏輯功能,其本質就是對相關的檔案 或者是目錄 進行讀取操作,然後獲取其中的相關屬性,在進行相關的邏輯操作。大致的過程還是梳理下。首先是開...

《Unix Linux程式設計實踐教學》筆記

ctrl alt t 開啟命令列終端 chapter 1概述 目錄操作 1 ls 列出目錄內容 eg ls 列出當前目錄內容 ls etc 列出 etc目錄裡面所包含的檔案和子目錄 2 cd 改變當前目錄 剛登入系統時,當前目錄是自己的主目錄 eg cd bin 轉到 bin目錄下 cd.轉到上一層...