Linux 基礎系統I O 菜鳥學習日記

2021-08-16 13:40:33 字數 1307 閱讀 9356

首先理解i/o

輸入/輸出(i/o)是主存和外部裝置(如磁碟、終端和網路)之間拷貝資料的方式。輸入是從裝置拷貝資料到主存,輸出反之。

unix i/o

所有的i/o裝置,如網路、磁碟和終端,都是被模型化為了檔案,所有的輸入和輸出都被當作相對應的檔案來讀和寫操作。

正是因為這種將裝置對映為檔案的方式,在我們要對乙個裝置進行操作時只要對向對應的檔案進行操作即可,而unix核心也引出了乙個簡單、低階的應用介面,unixi/o,這使得所有的輸入和輸出都能以一種統一的方式來執行。

#include

#include

#includeint open(char *filename,int flags);

int open(char *filename,int flags,mode_t);

//返回:若成功則返回新檔案的描述符,出錯為-1

filename:要開啟或建立的檔案

flags:指明了程序打算如何訪問這個檔案

//具體使用哪個open函式,根據場景,如果目標檔案存在,則使用第乙個,需要open建立,則需要第三個引數來表示建立檔案的的預設許可權

flags引數:

o_rdonly:唯讀

o_wronly:只寫

o_rdwr:可讀可寫

例如:fd=open(」foo.text」,0_rdonly)

以讀的方式開啟乙個已存在的檔案

mode引數

陣列裡的下標0,1,2分別指向標準輸入、標準輸出、標準錯誤

這三個也是預設預設的

後面從3開始分別對應相應的檔案,所以檔案描述符其實就是這個陣列的對應下標

關閉檔案

#include

int close(int fd);

//fd:檔案描述符

返回:若成功為0,出錯-1

注意:檔案描述符的分配規則

在files_struct陣列中,當前沒有被使用的最小下標,作為新的檔案描述符

注意:重定向fd=1,被關閉時,fd=1就指向了新開啟的檔案

linux 檔案IO系統學習

所有的io操作開啟的檔案系統都會生成乙個檔案描述符fd來表示已經開啟的檔案。fd是乙個整數。fd open pathname,flags,mode 函式開啟pathname所標識的檔案,並返冋檔案描述符,用以在後續函式呼叫中指代開啟的檔案。如果檔案不存在,open 函式可以建立,這取決於對位掩碼引數...

基礎IO 和 Linux 的檔案系統

基礎io 標準庫io介面 linux下系統呼叫io介面 檔案描述符 重定向 檔案系統 庫檔案 標準庫的io介面 fopen fwrite fread fseek fclose fread fwrite 比較推薦塊帶下為1,塊個數是想要操作的資料長度 feek 檔案沒有資料也可以跳轉讀寫位置 對檔案資...

Linux檢視系統IO

linux檢視io的工具主要有兩個,iostat 整合於sysstat包中 和iotop。前者經常用於檢視分割槽的io情況,後者常用來檢視每個程序的io占用。1 iostat yum install sysstat iostat x 5 每隔五秒顯示一次 2 iotop yum install io...