LS8 linux系統呼叫方式檔案程式設計之學習筆記

2021-08-04 13:03:13 字數 2506 閱讀 6364

linux系統呼叫方式檔案程式設計

定義/功能:檔案描述符

在linux系統中,所有開啟的檔案對應乙個數字,這個數字由系統分配,稱之為:檔案描述符。(可類似理解為:省份證號與你本人的關係),通過檔案描述符便可以對檔案進行操作。

開啟檔案

1.1 函式名(功能+unix環境高階程式設計手冊)

open

1.2 函式原形(終端man命令:man 2 open)

int open(const

char *pathname, int ***s );

int open(const

char *pathname, int ***s, mode_t mode );

1.3 函式功能

開啟或建立乙個檔案

1.4 所屬標頭檔案

#include 

#include

#include

#include
5.5 返回值

成功:0

失敗:-1

5.6 引數說明

fd:待關閉檔案的檔案描述符

4. 讀取檔案

4.1 函式名(功能+unix環境高階程式設計手冊)

read

4.2 函式原形(終端man命令:man read)

size_t read(int fd, void *buf, size_t count);

4.3 函式功能

從乙個開啟的檔案讀取資料

4.4 所屬標頭檔案

#include
1.5 返回值

成功:讀取資料的位元組數

失敗:-1

4.6 引數說明

fd:要讀取檔案的描述符

buf:讀取來的資料存在buf指向的空間

count:希望讀取的位元組數

寫檔案

5.1 函式名(功能+unix環境高階程式設計手冊)

write

5.2 函式原形(終端man命令:man write)

size_t write(int fd, void *buf, size_t count);

5.3 函式功能

向乙個開啟的檔案寫入資料

5.4 所屬標頭檔案

#include
5.5 返回值

成功:寫入檔案的位元組數

失敗:-1

5.6 引數說明

fd:要寫入檔案的描述符

buf:要寫入檔案的資料

count:要寫入資料的位元組數

定位檔案

6.1 函式名(功能+unix環境高階程式設計手冊)

lseek

6.2 函式原形(終端man命令:man lseek)

off_t lseek(int fd, off_t offset, int vhence);

6.3 函式功能

重新定位檔案讀寫位置

6.4 所屬標頭檔案

#include 

#include

6.5 返回值

成功:移動後的檔案指標距離檔案頭的位元組數(位置)

失敗:-1

6.6 引數說明

fd:要寫入檔案的描述符

offset:要移動的偏移量

whence:移動的初始位置

seek_set:檔案頭

seek_cut:當前位置

seek_end:檔案尾

7. 複製檔案描述符

7.1 函式名(功能+unix環境高階程式設計手冊)

dup

7.2 函式原形(終端man命令:man write)

int dup(int oldfd) ;

7.3 函式功能

複製乙個檔案描述符

7.4 所屬標頭檔案

#include
7.5 返回值

成功:返回新的檔案描述符

失敗:-1

7.6 引數說明

oldfd:要複製檔案的描述符

示例:將乙個檔案的資料複製到另乙個檔案裡

流程:

1. 開啟原始檔

2. 開啟目標檔案

3. 讀取原始檔資料寫入目標檔案

**:

#include 

#include

#include

#include

void main(int argc, char **argv)

綜合例項**:

#include 

#include

#include

#include

#include

int main()

Linux執行ls,會引起哪些系統呼叫

可以通過strace o ls.txt ls進行檢視 open o rdonly o nonblock o largefile o directory o cloexec 3 開啟當前目錄這個檔案 目錄是一種特殊的檔案 並返回檔案控制代碼3 fstat64 3,0 取得當前目錄檔案的屬性,比如這裡大...

linux系統呼叫方式訪問檔案

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

Linux系統程式設計8 檔案I O

fcntl.h 標頭檔案,file control的縮寫。open函式,openat函式 int open const char path,int oflag int openat int fd,const char path,int oflag 將準備開啟的檔案或是裝置的名字作為引數path傳給函...