国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

詳解Linux文件操作知識點

2024-08-28 00:03:40
字體:
來源:轉載
供稿:網友

文件操作的相關系統調用

創建

int creat(const char *filename, mode_t mode);

參數mode 指定新建文件的存取權限,它同umask 一起決定文件的最終權限(mode&umask),其中umask 代表了文件在創建時需要去掉的一些存取權限,它只影響讀、寫和執行權限,調用函數為int umask(int newmask)。

打開

int open(const char *pathname, int flags);

pathname是我們要打開的文件名(包含路徑名稱,默認在當前路徑下)

flags打開的標志

O_RDONLY 以只讀的方式打開文件

O_WRONLY 以只寫的方式打開文件

O_RDWR 以讀寫的方式打開文件

O_APPEND 以追加的方式打開文件

O_CREAT 創建一個文件

O_EXEC 如果使用了O_CREAT而且文件已經存在,就會發生一個錯誤

O_NOBLOCK 以非阻塞的方式打開一個文件

O_TRUNC 如果文件已經存在,則刪除文件的內容

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

當flag為O_CREATE,指定mode標志,用來表示文件的訪問權限

S_IRUSR 用戶可以讀

S_IWUSR 用戶可以寫

S_IXUSR 用戶可以執行

S_IRWXU 用戶可以讀、寫、執行

S_IRGRP 組可以讀

S_IWGRP 組可以寫

S_IXGRP 組可以執行

S_IRWXG 組可以讀、寫、執行

S_IROTH 其他人可以讀

S_IWOTH 其他人可以寫

S_IXOTH 其他人可以執行

S_IRWXO 其他人可以讀、寫、執行

S_ISUID 設置用戶的執行ID

S_ISGID 設置組的執行ID

mode標志也可以用數字來表示文件權限:

每個數字可以取1(執行權限)、2(寫權限)、4(讀權限)、0(無)或者是這些值的和。

第一位表示設置用戶ID

第二位表示設置組ID

第三位表示用戶自己的權限位

第四位表示組的權限

第五位表示其他人的權限

open("test", O_CREAT, 10705);

上述語句等價于:

open("test", O_CREAT, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID );

讀寫

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

參數fd文件描述符,buf為指向緩沖區的指針,length為緩沖區的大小(以字節為單位),返回值為實際讀取和寫入的字節數。

read( )實現從文件描述符fd所指定的文件中讀取length個字節到buf所指向的緩沖區中,返回值為實際讀取的字節數

write( )實現將把length 個字節從buf 指向的緩沖區中寫到文件描述符fd所指向的文件中,返回值為實際寫入的字節數。

定位

對于隨機文件,我們可以隨機地指定位置讀寫:
int lseek(int fd, offset_t offset, int whence);

lseek()將文件讀寫指針相對whence移動offset(可取負值)個字節。操作成功時,返回文件指針相對于文件頭的位置。

參數whence可以使用如下值:

SEEK_SET:相對文件開頭。
SEEK_CUR:相對文件讀寫指針的當前位置。
SEEK_END:相對文件末尾。

關閉

int close(int fd);

C庫函數的文件操作――獨立于具體的操作系統平臺

創建和打開

FILE *fopen(const char *path, const char *mode);
fopen()實現打開指定文件filename,其中的mode為打開模式,Linux 系統不區分二進制文件和文本文件。

mode的值

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中西区| 阿鲁科尔沁旗| 五原县| 文成县| 五峰| 东至县| 巴林左旗| 阳谷县| 萨迦县| 清镇市| 辽阳县| 高邮市| 县级市| 康马县| 屏东县| 利辛县| 东丰县| 三门峡市| 营口市| 上虞市| 光泽县| 长顺县| 留坝县| 唐山市| 平度市| 蒙山县| 诸城市| 呼和浩特市| 北川| 青河县| 靖宇县| 永川市| 重庆市| 大连市| 沂南县| 福泉市| 锦屏县| 临武县| 柘荣县| 华阴市| 格尔木市|