Linux基礎 6 檔案IO操作

2021-09-29 02:31:15 字數 2771 閱讀 1101

linux下一切皆檔案,所以檔案io是很重要的也是很基礎的操作。關於linux檔案io的操作主要有五個方面,分別是開啟,關閉,建立,寫與讀。

我們先來看一下開啟檔案open函式:

int

open

(const

char

*path,

int oflags,mode_t mode)

;

– 引數path表示:路徑名或者檔名。路徑名為絕對路徑名。

– 引數oflags表示:開啟檔案所採取的動作

o_rdonly檔案唯讀;o_wronly檔案只寫;o_rdwr檔案可讀可寫;

o_noctty如果路徑指向終端,則不將裝置作為此程序的控制終端

o_ndelay非阻塞方式操作檔案

– mode表示:設定建立檔案的許可權。許可權的巨集定義很麻煩,可以直接用數

字替代– 返回值:出錯返回-1;否則返回檔案控制代碼

下面是open函式的例項:

//標頭檔案

#include

#include

#include

#include

//主函式

main()

printf

("\n%s fd is %d\n"

,leds,fd)

;//如果返回值為-1.列印錯誤資訊,否則輸出檔案的控制代碼

//因為該檔案路徑不存在,所以返回的資訊為:「open /bin/test1 failed」if(

(fd =

open

(test1,o_rdwr,

0777))

<0)

printf

("%s fd is %d\n"

,test1,fd)

;//如果返回值為-1.列印錯誤資訊,否則輸出檔案的控制代碼

//雖然該檔案路徑不存在,但是引數裡新增了o_creat,

//檔案不存在時建立檔案,所以返回的資訊為:「/dev/test2 fd is 5」if(

(fd =

open

(test2,o_rdwr|o_creat,

0777))

<0)

printf

("%s fd is %d\n"

,test2,fd)

;}

.c檔案寫完之後按照linux基礎(3)中的步驟,編譯該檔案,然後在arm板上執行即可。

關閉檔案操作比較簡單,引數只有乙個:

int

close

(int fd)

;

fd為已開啟檔案的控制代碼。

open函式裡面有o_creat引數可以直接建立不存在的檔案,creat建立檔案是另一種方法:

int

creat

(const

char

* pathname, mode_t mode)

;

– 引數path表示:路徑名或者檔名。路徑名為絕對路徑名。

– 引數oflags表示:開啟檔案所採取的動作。

• o_rdonly檔案唯讀;o_wronly檔案只寫;o_rdwr檔案可讀可寫

例程為:

//標準輸入輸出標頭檔案

#include

//檔案操作函式標頭檔案

#include

#include

#include

main()

printf

("%s fd is %d\n"

,leds,fd)

;//使用open函式開啟不存在的檔案,不新增o_creat識別符號,會報錯if(

(fd =

open

(test1, o_rdwr)

)<0)

//開啟檔案建立檔案,新增標誌位o_creat表示不存在這個檔案則建立檔案if(

(fd =

open

(test2, o_rdwr|o_creat,

0777))

<0)

printf

("%s fd is %d\n"

,test2,fd);

fd =

creat

(test3,

0777);

if(fd =-1

)else

}

寫檔案write函式:

ssize_t write

(int fd,

const

void

*buf, size_t count)

;

– 引數fd表示:使用open 函式開啟檔案之後返回的控制代碼。

– 引數*buf表示:寫入的資料

– 引數count表示:最多寫入位元組數

– 返回值:出錯-1,;其它數值表示實際寫入的位元組數

讀檔案read函式:

ssize_t read

(int fd,void

*buf,size_t len)

;

– 引數fd:使用open 函式開啟檔案之後返回的控制代碼

– 引數*buf:讀出的資料儲存的位置

– 引數len:每次最多讀len 個位元組

– 返回值:錯誤返回-1,執行成功返回實際讀取值

Linux學習筆記(6) 檔案I O

持續乙個禮拜的出差終於結束了,本次出差真是收益良多,不僅品嚐了正宗的大閘蟹,同時也是第一次體驗了產品的現場實施流程。明天開始繼續學習linux!分割線 因為各種原因,已經有十天沒有更新了,真是太不應該了,以後一定杜絕這種懶惰 無恥的情況!分割線 古話說得好,在linux之下,一切皆是檔案。有很多資源...

c基礎 6 檔案操作

1.讀檔案 2.寫檔案 三.fputs,fgets 行讀取和寫入 四.fprintf,fscanf格式化讀寫檔案內容 二.fwrite,fread二進位制的讀寫 stat 函式 fseek,ftell,rewind remove rename fflush 檔案流 重新整理快取 int main2 ...

Python基礎(6)檔案和I O流

coding gbk 文字檔案 with open r c users administrator desktop mysal python data.txt r as f with語句自動關閉檔案流 for s in f.readlines readlines 讀入多行內容 print s,end...