linux學習筆記二,檔案操作

2021-07-25 15:36:02 字數 2734 閱讀 2007

在一般的檔案操作中,一般分為三個步驟,開啟檔案、操作檔案、關閉檔案。下面我們就安裝這三個步驟講解:

一、開啟檔案。

#include 

#include

#include

int open(const char *path, int oflags);

int open( const char *path, int oflags, mode_t mode);

引數說明, path: 要開啟的檔名

oflags: 用於指定開啟檔案所採取的動作

mode: 用於指定檔案開啟後的操作許可權。

oflags,檔案操作模式有大概以下幾種:

1.o_rdonly 以唯讀方式開啟

2.o_wronly 以只寫方式開啟

3.o_rdwr 以讀寫方式開啟

5.o_trunc: 把檔案的長度設定為零,丟棄已有的內容。

6.o_creat: 如果需要,就按引數mode中給出的訪問模式建立檔案。

7.o_excl: 與o_creat一起使用,確保條用者建立出檔案。

其中1-3為3中基礎操作模式,後面4-7都需要配合前面3種使用。

mode, 當操作檔案可能不存在時,需要使用oflags 6 來建立檔案,而檔案的各種許可權則需要引數mode來申明

s_irusr: 讀許可權,檔案屬主

s_iwusr: 寫許可權,檔案屬主

s_ixusr: 執行許可權,檔案屬主

s_irgrp: 讀許可權,檔案所屬組

s_iwgrp: 寫許可權,檔案所屬組

s_ixgrp: 執行許可權,檔案所屬組

s_iroth: 讀許可權,其他使用者

s_iwoth: 寫許可權,其他使用者

s_ixoth: 執行許可權,其他使用者

二、檔案操作

1、write 系統呼叫

#include 

size_t write(int fildes, const void *buf, size_t nbytes);

引數說明: fildes: 檔案描述符(檔案控制代碼),指明需要操作檔案的乙個標識

一般是open() 返回的,或者是標準

buf: 快取字段,用於儲存操作的字串,

nbytes: 每次緩衝的字串的最大長度。

2、read系統呼叫

#include 

size_t read(int fildes, void *buf, size_t nbytes);

引數說明:

fildes: 檔案描述符(檔案控制代碼),指明需要操作檔案的乙個標識

一般是open() 返回的,或者是標準

buf: 快取字段,用於儲存操作的字串,

nbytes: 每次緩衝的字串的最大長度。

三、檔案的關閉

#include 

int close(int fildes);

引數說明:

fildes:

檔案描述符(檔案控制代碼),指明需要操作檔案的乙個標識

四、其他操作

1、ioctl系統呼叫

#include 

int ioclt(int fildes, int cmd, ...);

在linux系統中,anyting is file, 所以當要對硬體進行操作時,這個方法就比較實用

它提供了乙個用於控制裝置及其描述符行為和配置底層服務的介面。終端、檔案描述符、套接字甚至磁帶機都可以有為它們定義的ioctl。

使用示例,在linux系統上對ioctl的如下嗲用講開啟鍵盤上的led燈:

ioctl (tty_fd, kdsetled, led_num | led_cap | led_scr);

2、lseek系統呼叫

#include 

#include

off_t lseek(int fildes, off_t offset, int whence);

lseek的呼叫是對檔案描述符fildes的讀寫指標進行設定。

引數說明: fildes,不再贅述。

offset, 用來指定位置(偏移量)

whence,定義offset偏移值的用法。可以有以下取值:

seek_set: 絕對位置

seek_cur: 相對當前位置的offset

seek_end: 相對檔案尾的offset

3、fstat、stat和lstat系統呼叫

#include 

#include

#include

int fstat(int fildes, struct stat *buf);

int stat(const char *path, struct stat *buf);

int lstat(const char *path, struct stat *buf);

fstat系統呼叫返回與開啟的檔案描述符相關的檔案的狀態資訊,該資訊將會寫到引數buf中

4、dup和dup2系統呼叫

#include 

int dup(int fildes);

int dup2(int fildes, int fildes2);

linux學習筆記(二)檔案操作命令

1.rm 命令 使用 rm 引數 檔案 功能 刪除檔案 常用引數 v 顯示執行過程 i 進行互動式的刪除 r 遞迴的刪除檔案或目錄 如果rm命令不跟上 r則不能刪除目錄檔案 使用例項 rm r v var test 刪除var目錄下的test目錄並顯示執行過程 2.cp命令 使用 cp 引數 原始檔...

Linux學習筆記02 檔案操作

新建乙個名為 hello 的檔案 touch hello ls hello 檢視新建的檔案 複製檔案到指定目錄下,例項 將 hello 檔案複製到 one two 資料夾下cp hello one two 複製目錄,加上 r 刪除檔案 rm hello刪除目錄rm r test 使用 mv 命令移動...

Linux學習筆記 二 檔案管理

pwd ls cd cp mv rm ln mkdir cat more less head tail pwd命令,全稱是printworkingdirectory,用於顯示當前工作目錄的路徑 pwd home userls命令,全稱是list,用於列出當前工作目錄的內容,常用的引數如下 ls l ...