Linux檔案操作

2021-07-31 23:28:12 字數 3275 閱讀 5211

linux檔案操作

fopen 建立的檔案的訪問許可權將以 0666 與當前的 umask 結合來確定

rb+與ab+的區別

1.資料塊讀寫

fread(void *ptr,size_t size,size_t nmemb,file *stream);

fwrite(void *ptr,size_t size,size_t nmemb,file *stream);

2.格式化讀寫

scanf和printf

sscanf和sprintf

fscanf和fprintf

3.單個字元讀寫

fgetc和fputc

getc和putc

getchar和putchar

4.字串讀寫

fgets和fputs

gets和puts

5.目錄操作

1.改變目錄或檔案的訪問許可權

#include

int chmod(const char* path, mode_t mode);//mode 形如: 0777

2.獲取、改變當前目錄

#include //標頭檔案

char *getcwd(char *buf, size_t size); //獲取當前目錄, 相當於 pwd 命令

int chdir(const char *path); //修改當前目錄, 即切換目錄, 相當於 cd 命令

getcwd(null, 0);

3.建立和刪除目錄

#include

#include

#include

int mkdir(const char *pathname, mode_t mode); //建立目錄,mode 是目錄許可權

int rmdir(const char *pathname); //刪除目錄

//受掩碼影響

4.獲取目錄資訊

#include

#include

dir *opendir(const char *name); //開啟乙個目錄

struct dirent *readdir(dir *dir); //讀取目錄的一項資訊, 並返回該項資訊的結構體指標

int closedir(dir *dir); //關閉目錄檔案

void rewinddir(dir *dir); //重新定位到目錄檔案的頭部

void seekdir(dir *dir,off_t offset);//用來設定目錄流目前的讀取位置

off_t telldir(dir *dir); //返回目錄流當前的讀取位置

6.標準輸入/輸出流

標準輸入、 輸出、 錯誤流

stdin、 stdout、 stderr

7.基於檔案描述符的檔案操作

1.開啟、建立和關閉檔案

open和creat和close

open 出錯返回-1

檔案的開啟引用計數為0時,檔案才會真正的關閉

#include //標頭檔案

#include

#include

int open(const char *pathname, int flags); //檔名 開啟方式

int open(const char *pathname, int flags, mode_t mode);//檔名 開啟方式 許可權

o_rdonly //以唯讀方式開啟

o_wronly //以只寫方式開啟

o_rdwr //以讀寫方式開啟

o_excl //僅與 o_creat 連用,如果檔案已存在,則強制 open 失敗

o_trunc //如果檔案存在, 將檔案的長度截至 0

2.讀寫檔案

read和write 出錯返回-1

#include

ssize_t read(int fd, void *buf, size_t count);//檔案描述詞 緩衝區 長度

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

3.改變檔案大小

#include

int ftruncate(int fd, off_t length);

返回值 執行成功則返回 0, 失敗返回-1

4.檔案定位

lseek

#include

#include

off_t lseek(int fd, off_t offset, int whence);//fd 檔案描述詞

whence 可以是下面三個常量的乙個

seek_set 從檔案頭開始計算

seek_cur 從當前指標開始計算

seek_end 從檔案尾開始計算

返回值為偏移值

檔案空洞--多程序間通訊的共享記憶體

5.獲取檔案資訊

fstat和stat

#include

#include

#include

int stat(const char *file_name, struct stat *buf); //檔名 stat 結構體指標

int fstat(int fd, struct stat *buf); //檔案描述詞 stat 結構體指標

6.檔案描述符的複製--用來重定向程序的stdin(0),stdout(1),stderr(2)

int dup(int oldfd);

int dup2(int oldfd, int newfd);

7.管道檔案實現即時聊天

pipe

多路復用:

讀程序開啟管道1的讀端

開啟管道2的寫端

while(1)

寫程序開啟管道1的寫端

開啟管道2的讀端

while(1)

//雙方不能互發訊息

利用select()函式

8.mmap 檔案對映

改變檔案的內容

日誌:void syslog(int priority, const char* message,arguments…);

log_info 一般資訊

log_debug 除錯資訊(寫不到 messages 裡面)

syslog(log_debug,"this is debug%d %s\n",10,"aaa");

linux 檔案操作

1 cat 開啟檔案 cat name.txt 開啟檔案name.txt cat 1.txt 2.txt 開啟2個檔案 cat n name.txt 開啟檔案後顯示行號 2 vi 輸出,刪除,查詢,替換,塊操作 等文字操作 vi 的三種基本工作模式 命令列模式,文字輸入模式,末行模式 命令列模式 不...

Linux 檔案操作

1,查詢檔案 find name 名稱 ls find atime 10 記著有乙個點號 兩邊都有空格,代表當前目錄,如果希望顯示系統的所有大於10天的檔案 可以將 換成 代表根目錄 find mtime n print n天前那天改過的檔案 find mtime n print n天以前改過的檔案...

linux檔案操作

unix檔案操作 讀寫操作 標c檔案讀寫 file 代表乙個開啟的檔案 unix linux的檔案讀寫函式 linux系統中 幾乎一切都是檔案,記憶體 目錄 硬體裝置都可以看成檔案。比如 記憶體 對應目錄 proc pid 目錄 可以用 vi 檢視,也是檔案 裝置 dev tty 鍵盤 顯示器 de...