設備文件 在unix系統中,每個設備都被當做一個文件,每個文件都有一個文件名,一個inode號,一個文件所有者,一個權限位的集合和最近修改時間。 且通常表示設備的文件存放在目錄/dev中,但是可以在任何目錄下創建設備文件。 因此設備支持所有與文件相關的系統調用:open,read,write,lseek.close,stat
設備文件的inode 設備文件的inode包含指向內核子程序表的指針。主設備號用于告知從設備讀取數據的那部分代碼的位置。 設備文件的read系統調用的工作過程,內核首先找到文件描述符的inode,得知該文件是設備文件后,內核通過調用該設備驅動程序的read部分來讀取數據。
設備與磁盤文件的不同 系統通過調用open創建文件和設備與進程的連接,但是他們有著不同的性質。 磁盤連接的兩個主要屬性: (1)緩沖:磁盤文件有緩沖區,可以通過fcntl()關閉 (2)自動添加模式:即當文件描述符的O_APPEND打開后,每個對write的調用自動調用lseek將內容添加到文件末尾。 終端連接: 具有回顯,波特率, 編輯和換行會話。
相關系統調用 fcntl:控制文件描述符 ioctl:控制一個設備 tcsetattr:設置tty驅動程序的屬性 tcgetattr:讀取tty驅動程序的屬性
終端 終端是人們用來和unix進程進行通信的設備。終端擁有一個可以讓進程讀取字符的鍵盤和可讓進程發送字符的顯示器。 進程與終端間的數據傳輸和數據處理由終端驅動程序負責,終端驅動程序是內核的一部分,該部分代碼提供緩沖,編輯和數據轉換。
代碼 略
新聞熱點
疑難解答