• linux--access函数与mkdir函数


    access函数与mkdir函数

    这两个函数在往本地存储数据创建新的文件夹时用到

            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;
    
  • 相关阅读:
    shell 遍历当前目录以及所有子目录下文件
    linux shell 字符串操作(长度,查找,替换)详解
    将自定义结构存入std::set 或者 std::map
    CentOS下搭建SVN服务器
    基于Debian的linux系统软件安装命令
    rm搭配grep删除符合条件的文件
    Centos系统环境
    怎么恢复用mysqldump备份数据和恢复数据
    mac 安装 node.js 的 canvas
    centos 6.5 安装 node.js 的 canvas模块
  • 原文地址:https://www.cnblogs.com/simard/p/12779396.html
Copyright © 2020-2023  润新知