opendir是打开一个目录,这个目录必须存在,并且是目录,不能是文件,否则会报错;
mkdir则是创建一个目录;
我们可以通过两个个函数的配合使用,实现功能:
检查目录是否存在,当目录不存在时创建目录。
解决了如下问题:
程序只创建一次以年月日命名的目录,然后向目录中一分钟存一个文件,但是当在该天,我们因为硬盘存储空间等原因,将该目录删除,这样就导致后面的文件无法存储到该目录了。
实现逻辑:
每次存文件的时候,使用opendir先判一下该目录存不存在,如果存在则closedir;
如果不存在,则mkdir,创建目录,这样即使目录被删除了,下一分钟存储文件时,目录仍会重新建立。
示例:
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
DIR *dirp = opendir("/home/python/Desktop/mymy");
if(dirp==NULL)
{
mkdir("/home/python/Desktop/mymy",0775);
perror("dirp");
}
else
closedir(dirp);
char nn[]="hello";
FILE *fp = fopen("/home/python/Desktop/mymy/xiaoming.c","w+");
fwrite(nn,1,sizeof(nn),fp);
fclose(fp);
}