1. getcwd庫函式使用: 很少使用 獲取當前工作目錄
char * getcwd(char * buf,size_t size);
#include#include#includeint main( )
/root/zty
效果與pwd 命令一樣
chdir 很少使用 int chdir(const char *path);
返回值:0-切換成功;非0-失敗。
#include#include#includeint main()
~
[root@izuf6g6gmwubu9o02mecvyz zty]# ./88
/root/zty1
//可以看出 chdir 切換目錄命令 並且用getcwd 獲取 並列印
但這並不影響 正在使用的終端目錄 也就是說不能改變正在使用的目錄
目錄的建立與刪除
int mkdir(const char *pathname, mode_t mode);
#include#include#includeint main()
結果如圖:
可以按照日期去建立目錄 用於存放當天的**資料 如 mkdir 20191221
int rmdir(const char *pathname);
#include#include#includeint main()
經過確認 該目錄已經刪除 。
獲取目錄中的檔案列表
如 ls 命令
標頭檔案:#include
opendir庫函式
dir *opendir(const char *pathname); //dir是目錄指標,
讀取目錄的函式readdir的宣告
struct dirent *readdir(dir *dirp); 呼叫一次 返回乙個結構體的位址,存放這次呼叫讀取到的資訊。
關閉目錄的函式closedir的宣告。
int closedir(dir *dirp);
資料結構:
結構體:
struct dirent 在dirent.h標頭檔案裡,定義結構體指標直接呼叫即可。eg struct dirent *ii
unsigned char d_type; // the type of d_name 檔案型別 8-常規檔案,4-目錄。
d_name 檔案或者目錄名字
d_type 檔案型別
char d_name [name_max+1]; // file name檔名,最長255字元 檔名或者目錄
獲取目錄中的檔案調取示範:
#include#includeint main ()
closedir(dir);
}
name=book61.c,type=8
name=81.c,type=8
name=84,type=8
name=..,type=4
name=4.c,type=8
name=book39.c,type=8
name=booksz2.c,type=8
name=40.c,type=8
name=boo38.c,type=8
name=90,type=8
name=public.c,type=8
name=book22.c,type=8
#include#includeint main ()
dir *dir;
dir=opendir(ar**[1]);
if(dir==0)
return -1;
struct dirent *ii;
while(1)
closedir(dir);
}
./2 root root指的是目錄名稱
./2 root
name=89.c,type=8
name=74.c,type=8
name=87.c,type=8
name=book22,type=8
name=makefile,type=8
name=book38,type=8
name=book9.c,type=8
name=85.c,type=8
ls -l 檔案型別
-rw-r--r-- 1 root root 2196976 11月 26 22:28 public
-rw-r--r-- 1 root root 1689 5月 14 09:15 _public.c
-rw-r--r-- 1 root root 2832 2月 15 21:12 public.c
-rw-r--r-- 1 root root 0 5月 14 13:08 _public.h
-rw-r--r-- 1 root root 1738 5月 14 00:02 public.h
-rw-r--r-- 1 root root 0 3月 27 12:33 q.c
實際開發中需要列出該目錄下以及它的子目錄下的全部檔案
#include#include#includeint readdir(const char *strpathname);
int main (int argc,char *ar**)
readdir(ar**[1]);
}int readdir(const char *strpathname)
if(catalog->d_type==8)
printf("name=%s,type=%s\n",strpathname,catalog->d_name);
} closedir(dir);
}
name=/root/zty,type=89.c
name=/root/zty,type=74.c
name=/root/zty,type=87.c
name=/root/zty,type=book22
name=/root/zty,type=makefile
name=/root/zty,type=book38
name=/root/zty,type=book9.c
name=/root/zty,type=85.c
name=/root/zty,type=93.c
name=/root/zty,type=91.c
name=/root/zty,type=40
C語言目錄操作
1.在linux下要判斷乙個路徑是否是目錄,及遍歷這個路徑下的所有檔案,可以使用以下方式 主演使用的函式是 s isdir 判斷是否是目錄,傳入引數是stat.st mode dir opendir const char 開啟指定路徑 struct dirent readdir dir 開啟指定目錄...
C語言目錄操作
五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...
C語言目錄操作
五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...