下面介紹關(guān)于文件和目錄操作的函數(shù)
1.文件類型
stat(),fstat()和lstat()函數(shù)
fstat功能和stat類似,只是不以文件的路徑稱作為標識,而是用文件描述符標識目標文件,獲得該文件的有關(guān)信息。lstat形式和功能都與stat類似,但是當目標文件是符號鏈接文件時,lstat返回該符號連接的有關(guān)信息。
格式:
#inlcude <sys/stat.h>
#include <unistd.h>
int stat(const chat *name, struct stat *buf);
int fstat(int filedes, struct stat *buf);
int lstat(const char *file, stuct stat *buf);
與此命名文件有關(guān)的信息結(jié)構(gòu)放在buf中。成功則函數(shù)返回0,否則返回-1。
2.文件權(quán)限
(1)access
用來檢查指定文件的屬性,可以檢查文件愛你是否可讀,可寫,可執(zhí)行。
格式:
#include <unistd.h>
int access(const char *file, int mode);
成功返回0,失敗返回-1 。
(3)umask
為 進程設(shè)置創(chuàng)建文件的許可掩碼。
格式:
#include <sys/types.h>
#include <sys/stat.h>
mode_t umask(mode_t mode);
返回以前文的文件方式創(chuàng)建屏蔽字。無錯誤返回。
(4)chmod和 fchmod
改變文件的操作權(quán)限
格式:
#include <sys/types.h>
#include <sys/stat.h>
chmod[OPTION]MODE[,MODE...] FILE;
int chmod(const char *path, mode_t mode);
int fchmode(int fileds, mode_t mode);
(5)chown,fchown和lchown
更改文件的用戶ID和組ID。
格式:
#include <sys/types.h>
#include <unistd.h>
int chown(condt char *name, uid_t owner, gid_t group);
int fchown(int filedes, uid_t owner, gid_t group);
int lchown(const char *nam, uid_t owner, gid_t group);
3.文件操作
(1)link,unlink和 remove
link函數(shù)建立指向文件的新目錄項。
unlink函數(shù)刪除目錄項或文件(僅作用于非目錄文件)。
remove函數(shù)和unlink功能相同,只是remove可以刪除目錄文件
格式:
#include <unistd.h>
int link(const char *old, const char *new);
int unlink(const char *old);
#include <stdio.h>
int remove(const char *file);
成功返回0,失敗返回-1 。
(2)rename
此函數(shù)可以實現(xiàn)對一個文件或目錄的更名。
格式:
#include <stdio.h>
int rename(const char *old, const char *new);
(3)symlink
創(chuàng)建一個符號連接。
#include <unistd.h>
int symlink(const char *realpath, const char *charpath);
(4)realink
打開符號連接文件本身以讀取連接中的文件名。
格式:
#include <unistd.h>
int reslink(const char *file, const char *buf, int bufsize);
4.文件時間
utime和utimes
格式:
#include <sys.types.h>
#inlcude <utime.h>
int utime(const char *filename, const struct utimebuf *time);
int utimes(char *filename, struct timeval *tvp);
5.目錄操作
(1)mkdir
創(chuàng)建一個新目錄。
格式:
#include <sys/types.h>
#include <sys/stat.h>
int mkdir(const char *dname, mode_t mode);
(2)rmdir
刪除一個目錄。
格式:
#include <unistd.h>
int rmdir(const char *dname);
(3)chdir和fchdir
這兩個函數(shù)的任務(wù)是搜索相對路徑名的起點并可以更改當前工作目錄。它們的區(qū)別是chdir用路徑名來標識目標目錄,而fchdir用文件描述符來標識目標目錄。
格式:
#include <unistd.h>
int chdir(const char *path);
int fchdir(int filedes);
(4)gecwd
獲取當前工作目錄的絕對路徑名。
格式:
#include <unistd.h>
char *getcwd(char *buf, size_t bufsize);
6.特殊設(shè)備文件
sync和fsync
清空文件系統(tǒng)緩沖區(qū)
格式:
#include <unistd.h>
void sync(void);
int fsync(int filedes);