1、目錄操作有 mkdir(constchar *pathname,mode_t mode)
建立目錄,成功則傳回0,若出錯則傳回-1
int rmdir(const char *pathname)
rmdir可以删除一個空目錄,成功則傳回0,若出錯傳回-1
DIR *opendir(const *pathname)
成功則傳回指針,若出錯則傳回NULL
struct dirent *readdir(DIR *dp)
若成功則傳回指針,出處則傳回NULL
void rewinddir(DIR *dp) 成功則傳回0,若出錯則傳回-1
int closedir(DIR *dp) 成功則傳回0,若出錯則傳回-1
int chdir(const char *pathname) 切換目錄
成功則傳回0,若出錯則傳回-1
char *getcwd (char *buf,size_t size) 擷取目前工作目錄
若成功則傳回buf,若出錯則傳回NULL
2.列印某個目錄下的所有檔案名
[cpp]
# include <dirent.h>
int main(int argc,char *argv[])
{
DIR *dir=NULL;
struct dirent *ptr=NULL;
if((dir=opendir(argv[1]))==NULL)
perror("opendir");
return -1;
}
while((ptr=readdir(dir))!=NULL)
printf("%s \n",ptr->d_name);
return 0;
# include <stdio.h>
3.檔案通配符,程式功能類似于ls *.txt , 列印滿足條件的檔案
程式中的popen()和pclose()函數會建立一個管道,條用fork(),産生子程序,子程序執行指令,父程序與子程序之間利用管道實作程序間通信。
# include <string.h>
# include <unistd.h>
int main(int argc,char **argv)
char buf[256];
int i=1;
strcpy(buf,"ls ");
for(;i<argc;i++)
strcat(buf,argv[i]);
strcat(buf," ");
FILE *f=NULL;
if((f=popen(buf,"r"))==NULL)
perror("popen");
while(fgets(buf,sizeof(buf),f))
printf("%s",buf);
pclose(f);
}