在一般的檔案操作中,一般分為三個步驟,開啟檔案、操作檔案、關閉檔案。下面我們就安裝這三個步驟講解:
一、開啟檔案。
#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 ...