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...