系統呼叫的方式訪問檔案

2021-05-28 02:14:39 字數 1303 閱讀 8419

1、建立檔案

int create(const char* filename , mode_t mode) 建立檔案。filename為檔案路徑,mode為檔案許可權,如:s_irusr  可讀;s_irwxu 可讀、可寫、可執行。也可以用數字表示,如:0755。

2、檔案描述

在linux中,所有開啟的檔案都對應乙個檔案描述,它是乙個非負整數,同檔案流一一對應。

3、開啟檔案

int open(const char *pathname,int flags)

int open(const char *pathname,int flags,mode_t mode)

常見的開啟標誌:

o_rdonly     唯讀開啟

o_wronly    只寫開啟

o_rdwr         讀寫開啟

o_trunc      重新建立開啟

o_creat        建立開啟

o_noblock   非阻塞開啟

[注意] 如果使用建立開啟,這時要指定mode。

成功開啟返回檔案描述符,否則返回-1。

4、讀

int read(int fd,const void *buf,size_t length)

從fd指定的檔案中讀取length個位元組到buf中。返回值為實際讀入的位元組數。

5、寫

int write(int fd,const void *buf,size_t length)

把length個位元組從buf指向的緩衝區中寫到fd指向的檔案中。返回值為實際寫入的位元組數。

6、移動檔案指標

int lseek(int fd, offset_t offset,int whence)

將檔案的讀寫指標相對whence移動offset個位元組。操作成功時,返回檔案指標相當於檔案頭的偏移。whence有:

seek_set:  檔案開頭

seek_cur: 當前位置

seek_end: 檔案結尾

offset通常為正整數,也可以為負數,表示向前移動。

7、訪問判斷

int access(const char* pathname,int mode)

pathname是檔名。mode為:r_ok 、w_ok、x_ok、f_ok(檔案存在)。成功返回0,乙個條件不符就返回-1。

系統呼叫方式訪問檔案

linux 系統中訪問檔案的方法 1.linux 系統呼叫 2.基於 c語言的訪問 系統呼叫 建立 int creat const char filename,mode t mode filename 要建立的檔名 包含路徑,預設為當前路徑 mode 建立模式 常見建立模式 s irusr 可讀 s...

linux系統呼叫方式訪問檔案

系統呼叫 建立 一 int creat const char filename,mode t mode filename 要建立的檔名 包含路徑,預設為當前路徑 mode 建立模式 常見建立模式 s irusr 可讀 4 s iwusr 可寫 2 s ixusr 可執行 1 s irwxu 可讀 寫...

系統呼叫之檔案訪問

1 write 系統呼叫 系統呼叫write 的作用是,把緩衝區 buf的前 nbytes 位元組寫入到與檔案描述符 fildes 關聯的檔案中,同時它會返回實際寫入的位元組數。如果返回 0,就表示為寫出任何資料 如果是 1,就表示在 write 系統呼叫中出現了錯誤,對應的錯誤碼儲存在全域性變數 ...