Linux之檔案操作(3)

2021-07-04 10:08:32 字數 3366 閱讀 8929

檔案屬性操作

1.獲取檔案屬性

stat/fstat/lstat函式

#include 

#include

#include

int stat(const

char *file_name,struct stat *buf);

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

int lstat(const

char *file_name,struct stat *buf);

struct stat ;
st_mode包含的檔案型別資訊,posix標準定義了一系列的巨集

s_islnk:判斷是否為符號鏈結。

s_isreg:判斷是否為一般檔案。

s_isdir:判斷是否為目錄檔案。

s_ischr:判斷是否為字元裝置檔案。

s_isblk:判斷是否為塊裝置檔案。

s_isfifo:判斷是否為先進先出fifo。

s_issock:判斷是否為socket。

設定檔案屬性

1.hmod/fchmod

2.chown/fchown/lchown

#include 

#include

int chown(const

char *path,uid_t owner,gid_t group);\

int fchown(int fd,uid_t owner,gid_t group);

int lchown(const

char *path,uid_t owner,gid_t group);

chown會將引數path指定的檔案所有者id變更為引數owner代表的使用者id,而將該檔案所有者的組id變更為引數group組id。

目錄的建立與刪除

#include 

#include \

int mkdir(const

char *pathname,mode_t mode);//建立

int rmdir(const

char *pathname);//刪除

獲得當前目錄

每個程序都有乙個當前目錄,此目錄是搜尋所有相對路徑名的起點。

getcwd函式

#include 

char *getcwd(char *buf,size_t size);

getcwd會將當前的工作目錄絕對路徑複製到引數buf所指的記憶體空間,引數size為buf的空間大小。若工作目錄絕對路徑的字串長度超過引數size大小,返回值為null,errno值為erange。

設定工作目錄

chdir函式

#include 

int chdir(const

char *path);

chdir用來將當前工作目錄改為由引數path指定的目錄。執行成功返回0,有錯誤發生返回-1。

獲取目錄資訊

1.opendir函式

#include 

#include

dir ×opendir(const

char *name);

opendir用來開啟引數name指定的目錄,並返回dir*形態的目錄流。

2.readdir函式

#include 

#include

struct dirent *readdir(dir *dir);

readdir用來從引數dir所指向的目錄中讀取出目錄項資訊,返回乙個struct dirent結構的指標。

struct dirent

3.closedir

#include 

#include

int closedir(dir *dir);

closedir用來關閉引數dir指向的目錄,執行成功返回0,有錯誤回-1。

show_files.c

#include

#include

#include

#include

#include

int my_readir(const

char *path)

while((ptr = readdir(dir)) != null)

closedir(dir);

return0;}

int main(int argc , char **argv)

if(my_readir(argv[1])<0)

exit(1);

return

0;}

本程式可以將命令列的引數制定的目錄下的檔案顯示出來。

1.open(函式)

#include 

#include

int open(const

char *pathname, int flags);

int open(const

char *pathname,int flags,mode_t mode);

2.close函式

#include 

int close(int fd);

close函式只有乙個引數,此引數標示需要關閉的檔案的檔案描述符,該檔案描述符是由open函式或creat函式得到。當close呼叫成功時,返回值為0,發生錯誤返回-1,並設哦寧國置錯誤**。(注意,close函式呼叫成功並不保證資料能全部寫回硬碟)

2.檔案的讀寫

read函式

#include 

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

從檔案描述符fd所指向的檔案中讀取count個位元組的資料到buf所指向的快取中。若引數count為0,則read不會讀取資料,只返回0。

write函式

#include 

ssize_t write(int fildes,off_t offset,int whence);

將buf所指向的緩衝區中的count個位元組資料寫入到由檔案描述符fd所指示的檔案中。呼叫成功,返回寫入位元組數,發生錯誤,返回-1。

linux之檔案操作

linux目錄圖 根目錄,一般根目錄下只存放目錄,不要存放檔案,etc bin dev lib sbin應該和根目錄放置在乙個分割槽中 bin usr bin 可執行二進位制檔案的目錄,如常用的命令ls tar mv cat等。boot 放置linux系統啟動時用到的一些檔案。boot vmlinu...

linux基礎之檔案操作

1 options f 強制 r 目錄遞迴 l 互動 2 舉例 cp hello.txt user root 將hello.txt檔案複製到 user root目錄下 mv hello.txt user root 將hello.txt檔案剪下到 user root目錄下 rm hello.txt 刪...

linux命令之檔案操作

檔案操作 檔案建立或者檢視 cat 由第一行開始顯示檔案內容 tac 從最後一行開始顯示,可以看出tac是cat的倒寫 nl 顯示的時候順便輸出行號 more 一頁一頁地顯示檔案內容 less 與more相似,但是比more更好的是,它可以往前翻頁 head 只看頭幾行 tail 只看結尾幾行 od...