getcwd()
功能:输出当前所在的目录
原型:
char *getcwd(char *buf, size_t size);
用法
- 头文件: unistd.h
- *buf:保存当前目录的缓冲区
- size:在现代linux 中,buf 的长度至少可以为255 字节
- 返回值:成功返回指向当前目录的指针,和buf 的值一样,错误返回NULL
示例
void printCWD()
{
char path[50];
if(!getcwd(path,50))
{
perror("getced error");
exit(1);
}
puts(path);
}
opendir()
功能:打开目录
原型:
DIR *opendir(const char *path);
- 头文件:dirent.h
readdir()
功能:读取文件目录(相当于ls) 原型:
struct dirent *readdir(DIR *dirp);
原理
struct dirent
{
ino_t d_ino; //此目录进入点的inode
ff_t d_off; //目录文件开头到此目录进入点的位移
signed short int d_reclem; //_name的长度,不包含NULL字符
unsigned char d_type; // d_name所指的文件类型
char d_name[256]; //文件名
};
用法
void fun_ls(const char * path)
{
DIR * dp;
struct dirent *dirp;
dp=opendir(path); //打开文件夹
if(dp==NULL)
{
exit(-1);
}
while((dirp=readdir(dp))!=NULL)
{
printf("%s\n",dirp->d_name); //输出文件名
}
closedir(dp); //关闭文件夹
}
access()
功能:判断目录的状态 原型:
int access(const char *filename, int mode);
用法
- 头文件: unistd.h
- 参数类型:
- F_OK 只判断是否存在
- R_OK 判断写入权限
- W_OK 判断读取权限
- X_OK 判断执行权限
示例
if(access(save_directory,F_OK) != 0)
{
printf("not exits")
return -1;
}