1. chdir修改目前程序的工作目錄 (man 2 chdir 檢視)
int chdir(const char *path); //path路徑
int fchdir(int fd); //fd檔案描述符
傳回值:成功傳回0;失敗傳回-1 。
2. getcwd擷取目前程序的工作目錄
char *getcwd(char *buf, size_t size); //buf傳出參數,size是buf的長度,
char *getwd(char *buf);
char *get_current_dir_name(void);
傳回值:成功傳回路徑,失敗傳回NULL 。
3. mkdir建立一個目錄
int mkdir(const char *pathname, mode_t mode); //pathname目錄名稱,mode權限
傳回值:成功傳回0;失敗傳回-1 。
附:建立的指令需要帶有可執行權限,否則無法進入該目錄,這樣建立出來的目錄就沒有任何意義。
4. rmdir删除一個空目錄
int rmdir(const char *pathname); //pathname目錄名稱
傳回值:成功傳回0;失敗傳回-1 。
5. opendir打開一個目錄 (man 3 opendir 檢視)
DIR *opendir(const char *name); //目錄名稱
DIR *fdopendir(int fd); //檔案描述符
傳回值:成功傳回目錄指針(類似于FILE結構),失敗傳回NULL 。
6. readdir讀取目錄 (man 3 readdir 檢視)
struct dirent *readdir(DIR *dirp); //dirp是一個DIR結構體指針,一般由opendir的傳回值得到
傳回值:成功傳回struct dirent的結構體指針,失敗傳回NULL 。
int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); //entry傳出參數,下一個目錄記錄;result傳出參數,目前讀取結果
傳回值:成功傳回0,*result等于NULL表示讀取完;失敗傳回其他的有關錯誤碼
附:下面對struct dirent結構體的說明:
struct dirent {
ino_t d_ino; /* inode number inode号*/
off_t d_off; /* offset to the next dirent 目錄開頭到進入點的偏移量*/
unsigned short d_reclen; /* length of this record d_name的長度,不包括NULL字元*/
unsigned char d_type; /* type of file; not supported by all file system types 檔案類型*/
char d_name[256]; /* filename 檔案名稱*/
};
7. closedir關閉目錄
int closedir(DIR *dirp); //關閉目錄,dirp由opendir的傳回值得到
傳回值:成功傳回0;失敗傳回-1 。
8. seekdir,telldir,scandir等等,更多具體的函數和使用方法請檢視man手冊。