目录也是文件,目录文件的内容是目录项,目录项包含了文件和inode号。
实际上目录用的都是库函数,都在man 3里面查
目录操作函数
opendir
DIR * opendir(char* name);
参数:
- 文件名
返回值:
- 成功:目录指针
- 错误:NULL
closedir
int closedir(DIR* dp);
参数:
- 目录指针
返回值:
- 成功:0
- 失败:-1
readdir
struct dirent *readdir(DIR* dp);
参数:
- 目录指针
返回值:
- 目录项
struct dirent{
inode;
name;
}
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h> //directory entry
int main(int argc,char* argv[]){
DIR* dp;
dp=opendir(argv[1]);
if(dp==NULL){
perror("opendir error");
exit(1);
}
struct dirent* p;
while((p=readdir(dp))){
printf("name=%s,inode=%llu\n",p->d_name,p->d_fileno);
}
closedir(dp);
return 0;
}