linux--access函数与mkdir函数
程序员文章站
2022-07-06 10:02:23
函数与 r函数 这两个函数在往本地存储数据创建新的文件夹时用到 是文件的路径名 + 文件名(或者只是路径名) :指定access的作用,取值如下: F_OK 值为0,判断文件是否存在 X_OK 值为1,判断对文件是可执行权限 W_OK 值为2,判断对文件是否有写权限 R_OK 值为4 ......
access
函数与mkdi
r函数
这两个函数在往本地存储数据创建新的文件夹时用到
std::string file_path1 = "./image_data/front_middle/" + std::to_string(time_stamp_) + ".jpg"; if(access(file_path1,0)==-1) // this dir is not exist . if(mkdir(file_path1,0744)==-1) std::cout<<"the data folder create error!"<<std::endl<<file_path1<<std::endl;
access
#include<unistd.h> int access(const char* pathname, int mode);
pathname
是文件的路径名 + 文件名(或者只是路径名)
mode
:指定access的作用,取值如下:
f_ok 值为0,判断文件是否存在
x_ok 值为1,判断对文件是可执行权限
w_ok 值为2,判断对文件是否有写权限
r_ok 值为4,判断对文件是否有读权限
注:后三种可以使用或“|”的方式,一起使用,如w_ok|r_ok
返回值:成功0(存在),失败-1(不存在)
mkdir
#include <stdio.h> int mkdir(const char *pathname, mode_t mode);
pathname
是文件的路径名
mode
:定义所新建目录的权限
返回值:创建失败返回-1,创建成功返回0
char daystr[20]; timeval tv; gettimeofday(&tv,null); strftime(daystr,sizeof(daystr),"%y-%m-%d",localtime(&tv.tv_sec)); for(int i=0;i<20;i++) { if(daystr[i]==':') daystr[i]='-'; } save_path_string = save_path_string + daystr + std::string("/"); if(access(save_path_string.c_str(),0) == -1) if(mkdir(save_path_string.c_str(),0744) == -1) std::cout<<"the data folder create error!"<<std::endl<<save_path_string<<std::endl; char mytime[20]; strftime(mytime,sizeof(mytime),"%y-%m-%d-%t",localtime(&tv.tv_sec)); for(int i=0;i<20;i++) { if(mytime[i]==':') mytime[i]='-'; } save_path_string2 = save_path_string + std::string("/") + mytime + std::string("/"); if(access(save_path_string2.c_str(),0) == -1) if(mkdir(save_path_string2.c_str(),0744) == -1) std::cout<<"the data folder create error!"<<std::endl<<save_path_string2<<std::endl;