linux系統呼叫方式訪問檔案

2021-07-28 08:11:57 字數 1701 閱讀 2343

系統呼叫-建立:

一、int creat(const char * filename, mode_t mode)

filename:要建立的檔名(包含路徑,預設為當前路徑)

mode:建立模式

常見建立模式:

s_irusr           可讀                   4

s_iwusr           可寫                   2

s_ixusr           可執行                 1

s_irwxu           可讀、寫、執行          7

無任何許可權             0

建立檔案**:

#include #include #include #include #include void create_file(char * filename) else 

}int main(int argc, char * argv)

for(i = 1; i < argc; i++)

exit(exit_success);

}

二、系統呼叫-開啟

int open(const char * pathname, int flags)

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

pathname:要開啟的檔名(包含路徑,預設為當前路徑)

flag:開啟標誌

常見的開啟標誌:

o_rdonly          唯讀方式開啟

o_wronly          只寫方式開啟

o_rdwr            讀寫方式開啟

o_creat           建立乙個檔案(當開啟乙個檔案時,沒有會建立)

o_noblock         非阻塞方式開啟

如果是用o_creat就用三個引數的,其他的用倆兩個引數

三、檔案的關閉

int close(int fd)

四、系統呼叫-讀

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

引數:fd:所指定的檔案中讀取

length:把這麼多的位元組讀到buf所指向的緩衝區

返回值為實際讀取的位元組數

五、系統呼叫-寫

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

功能:把length個位元組從buf指向的緩衝區中寫到檔案描述符fd所指向的檔案中,返回值為實際寫入的位元組數

六、系統呼叫-定位

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

whence可使用一下值

seek_set:相對檔案開頭

seek_cur:相對檔案讀寫指標的當前位置

seek_end:相對檔案末尾

offset可取負值,表示向前移動

怎麼計算檔案長度?

七、系統呼叫-訪問判斷

int access(const char * pathname, int mode)

pathname:檔名稱

mode:要判斷的訪問許可權

返回值:當我們測試成功時,函式返回0,否則如果乙個條件不符時,返回-1

系統呼叫方式訪問檔案

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

系統呼叫的方式訪問檔案

1 建立檔案 int create const char filename mode t mode 建立檔案。filename為檔案路徑,mode為檔案許可權,如 s irusr 可讀 s irwxu 可讀 可寫 可執行。也可以用數字表示,如 0755。2 檔案描述 在linux中,所有開啟的檔案都...

Linux下系統呼叫訪問檔案

linux 的檔案操作有兩種方式 linux系統呼叫方式,這種方式依賴於linux系統 c語言的檔案操作,採用c語言的庫函式實現。以下是linux系統呼叫方式 1.建立檔案 intcreat const char filename,mode t mode filename 要建立的檔名,包含路徑,預...