linux 函数 缩小文件,linux文件系统的处理函数
文件系統
通用:rename(原路徑名,新路徑名); ?修改文件名
remove(路徑名); ? ? 刪除文件或路徑
symlink(原路徑名,符號鏈接名); ? 建立文件或路徑的軟鏈接
access(路徑名,權限); ? ? 權限:F_OK(是否存在) R_OK W_OK X_OK 的任意組合
lstat/stat/fstat(路徑名,struct stat *buf); ?取得文件詳細信息
xxx_t 一般是tepedef起的類型別名,絕大多數是整數類型的數據,目的是見面知意。一般在中定義
chmod(路徑名,權限); ?修改文件或目錄的權限
getpwuid(uid)/getpwnam(用戶名) ? 獲取用戶的信息
struct tm* localtime(time_t time); ?//UTC 轉換為時分秒格式
time_t mktime(struct tm*); ?本地時間轉換成UTC
目錄:
DIR* opendir(目錄路徑); ?//打開指定目錄,返回一個指針代表這個目錄打開,失敗返回NULL。
struct dirent* readdir(DIR*); ?//一次從目錄中讀取一項(一個文件或目錄)信息。返回一個結構體指針,指向包含目錄入口信息的結構變量。
struct dirent的定義沒有規定統一,但一定有一個d_name的成員保存文件或目錄名,沒有路徑。讀完了或失敗返回NULL.
closedir(DIR*);
telldir/seekdir/... ?頭文件
chdir(目錄路徑); ?//把當前目錄設置為指定目錄
getcwd(字符數組,數組長度); ?//取得當前路徑,絕對路徑
mkdir(目錄路徑, 權限); ?//按指定權限創建路徑
rmdir(目錄路徑); ?//刪除指定的空目錄
文件:
unlink(文件路徑) ?//刪除文件
ssize_t readlink(const char* path, char* buf, size_t buf_size); ? //讀軟鏈接文件(目標路徑)到buf(不會自動加\0)
int open(const char * path, int mode[,權限]) ?//打開文件,返回一個文件描述符,失敗返回-1
打開方式:O_RDONLY = 0,O_WRONLY=1,O_RDWR=2三選一,O_APPEND追加 O_CREAT文件不存在就創建 ?O_TRUNC以寫方式打開文件時,情空原有文件內容
O_EXCL和O_CREAT一起表示必須新建一個文件,如果文件已經存在打開就失敗 ?O_NONBLOCK不阻塞
ssize_t wirte(int fd, char *buf, size_t buf_size); ?//返回成功寫入文件的字節數,失敗返回-1
ssize_t read(int fd, char *buf, size_t buf_size) ? ?//依次讀取數據,返回讀取的字節數,失敗返回-1,返回0表示讀到文件尾。
int close(int fd); ? //關閉一個打開的文件,清空文件緩存區
void sync(void); ? ? //文件緩存寫到磁盤
int fsync(int fd); ? //文件緩存寫到磁盤
void syncfs(int fd); ? ?//文件緩存寫到磁盤
lseek(int fd, off_t offset, int whence) ? //指定一個打開文件的下次開始讀寫的位置,參考點:SEEK_SET SEEK_CUR SEEK_END,
返回從文件頭開始的偏移量 允許指定超過文件尾的偏移,中間部分會形成空洞,數據為0。
int truncate(const char *path, off_t length) ?//截斷文件成指定大小
ftruncate(int fd, off_t length) ? ? ? ?//截斷文件成指定大小
umask(mode) ?//設置文件創建時需要屏蔽的權限
dup dup2 //復制文件描述符
特殊文件描述符:0標準輸入設備文件 1標準輸出設備文件 2標準錯誤輸出設備文件
標準輸出從定向:
> /dev/null
> /dev/null 2> dev/null
> /dev/null 2>&1
>& /dev/null
特殊文件:/dev/tty當前設備終端 ? /dev/pts/n標號為n的虛擬終端 ?/dev/null空設備文件 ?/dev/zero
fcntl(文件描述符,命令,結構指針struct flock*) ? //功能很多,一般用于給文件加鎖
int fcntl(int fd, int cmd, .../*arg*/); ?// cmd: F_GETLK(取得鎖信息)/F_SETLK(加鎖)/F_SETLKW(加鎖直到成功為止)
struct flock
{
l_type; ?//鎖類型,F_RDCLK F_WRCLK F_UNCLK; 多個讀鎖可以共存,多個寫鎖和讀鎖不能同時存在,誰加的鎖誰解
l_start; ?//開始位置
l_whence; ?//偏移位置
l_len; ?//加鎖字節長度
l_pid; ? //哪個進程加的鎖
}
ioctl ?//調用驅動程序接口,不用驅動使用的參數及其含義不同
int ioctl(int fd, unsigned long request, ...);
文件操作:
系統 read write
C語言 fread fwrite fgetc fputc fgets fputs fscanf fprintf
C++ ifstrean ofstream
mmap:可以把文件映射到內存中,可以像內存一樣訪問文件。
void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
int munmap(void *addr, size_t length);
標簽:文件,int,文件系統,dev,fd,linux,buf,處理函數,size
來源: https://blog.csdn.net/Dam_Sam/article/details/100086173
總結
以上是生活随笔為你收集整理的linux 函数 缩小文件,linux文件系统的处理函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核打开prntk,操作系统实
- 下一篇: linux 在某个core上的中断 af