在操作文件目录时我们常常会考虑如下的功能:

1、判断文件是否存在,并判断文件是否可写/目录是否存在

Linux下:

#include

int access(const char* pathname, int mode);

参数介绍:

返回值:成功0,失败-1

pathname 是文件的路径名+文件名

mode:指定access的作用,取值如下:

F_OK 值为0,判断文件是否存在

X_OK 值为1,判断对文件是可执行权限

W_OK 值为2,判断对文件是否有写权限

R_OK 值为4,判断对文件是否有读权限

注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_OK

C++(标准C++中):

头文件:

函数原型:int _access(const char *pathname, int mode);

参数:pathname 为文件路径或目录路径 mode 为访问权限(在不同系统中可能用不能的宏定义重新定义)

返回值:如果文件具有指定的访问权限,则函数返回0;如果文件不存在或者不能访问指定的权限,则返回-1.

备注:当pathname为文件时,_access函数判断文件是否存在,并判断文件是否可以用mode值指定的模式进行访问。当pathname为目录时,_access只判断指定目录是否存在,在Windows NT和Windows 2000中,所有的目录都只有读写权限。

mode的值和含义如下所示:

00——只检查文件是否存在

02——写权限

04——读权限

06——读写权限

注意:用   int   access(const   char   *pathname,   int   mode);   判断有没有此文件或目录 --它区别不出这是文件还是目录

用   int   stat(const   char   *file_name,   struct   stat   *buf); 判断该文件或目录是否否存在 ;得到st_mode,然后判断是不是目录文件。

stat()系统调用看是否成功,不成功就不存在,成功判断返回的st_mode是否是一个文件夹。

2、判断目录是否存在

可以使用opendir来判断,这是比较简单的办法。

#include

#include

DIR *opendir(const char *name);

3、Linux下mkdir函数,创建目录

头文件库:

#include

#include

函数原型:

int mkdir(const char *pathname, mode_t mode);

函数说明:

mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。

返回值:

若目录创建成功,则返回0;否则返回-1,并将错误记录到全局变量errno中。

mode的值如下表:

S_IRWXU00700权限,代表该文件所有者拥有读,写和执行操作的权限

S_IRUSR(S_IREAD)00400权限,代表该文件所有者拥有可读的权限

S_IWUSR(S_IWRITE)00200权限,代表该文件所有者拥有可写的权限

S_IXUSR(S_IEXEC)00100权限,代表该文件所有者拥有执行的权限

S_IRWXG00070权限,代表该文件用户组拥有读,写和执行操作的权限

S_IRGRP00040权限,代表该文件用户组拥有可读的权限

S_IWGRP00020权限,代表该文件用户组拥有可写的权限

S_IXGRP00010权限,代表该文件用户组拥有执行的权限

S_IRWXO00007权限,代表其他用户拥有读,写和执行操作的权限

S_IROTH00004权限,代表其他用户拥有可读的权限

S_IWOTH00002权限,代表其他用户拥有可写的权限

S_IXOTH00001权限,代表其他用户拥有执行的权限

int32_t OpendirAndMkdir(const char * pathname)

{

int ret = 0;

DIR * mydir = NULL;

if ((mydir = opendir(pathname)) == NULL)

{

ret = mkdir(pathname, 0755);

if (ret != 0) return -1;

printf("%s created sucess!/n", pathname);

}

else

{

printf("%s exist!/n", pathname);

}

return ret;

}

本文地址:https://blog.csdn.net/Swallow_he/article/details/109639047

希望与广大网友互动??

点此进行留言吧!

linux下mkdir头文件_Linux中判断一个目录是否存在,如果不存在就创建这个目录相关推荐

  1. linux下mkdir头文件_Linux中mkdir函数与Windows中_mkdir函数的区别

    下面先来给大家介绍windows下_mkdir函数 #include int _mkdir( const char *dirname ); 参数: dirname是目录的路径名指针 返回值: 如果新目 ...

  2. linux下mkdir头文件_Linux部分常用命令学习记录

    Linux部分常用命令 ls 显示目标列表 ls -a 显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出): ls -l 以长格式显示目录下的内容列表.输 ...

  3. linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题

    态库./libpos.so. /root/test/env/lib/libpos.so和/root/test/conf/lib/libpos.so.我们再用源程序 pos_lib.c(见程序5)来创建 ...

  4. linux pid t 头文件_Linux信号处理

    什么是信号 信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源: 程序错误:除零,非法内存访问等. 外部信号:终端 Ctrl-C 产生 SGINT 信号,定时器到期产生SIGALRM等 ...

  5. linux pid t 头文件_linux系统调用相关头文件

    Linux C 一些函数 所属的头文件 2011-03-07 10:25:07 分类: LINUX 在编写程序时,有时总是不记得所使用的函数在哪个库函数中.现在先把自己以前经常用到的函数头文件总结一下 ...

  6. linux一切皆是文件_Linux中“一切皆文件”是什么意思?

    Linux的一切皆文件是指,Linux世界中的所有.任意.一切东西都可以通过文件的方式访问.管理. 反过来说,是Linux和GNU世界定的规范,任何东西都挂在文件系统之上,即使它们不是文件,也以文件的 ...

  7. linux c 头文件,linux下的头文件 及C/C++头文件 一览表

    C/C++头文件一览========================================================================================== ...

  8. linux下查看目标文件.a中函数符号名称

    问:拿到一个.a库,如何查看其中包含哪些函数? 答:使用 nm xx.a 命令 nm xx.a 如果输出较多,可重定向输出至文本文件中 nm xx.a > xx.txt 几个问题: (1).a到 ...

  9. 用Python在Windows或Linux下批量删除文件夹中指定的文件

    情况说明:当在一个文件夹下面有好几十个或几百个文件需要删除,此时一一去挑选费时费力,特别是在Linux下面.因此,需要批量删除文件. 对训练样本(图像)和测试样本(图像)进行评估时候,需要查看是数据本 ...

最新文章

  1. Android Fragment 你应该知道的一切
  2. centos7 安装 openssl
  3. SPSS学习中涉及的统计知识
  4. linux与windows间共享文件夹 FileZilla树莓派文件传输
  5. bind 0.0.0.0的作用是什么呢?
  6. Codeforce - 920C- Swap Adjacent Elements 排序|思维
  7. 冒泡排序java代码_面试官问我插入排序和冒泡排序哪个更牛逼?
  8. Spring DeferredResult 实现长轮询
  9. switchhosts以管理员身份运行后不显示故障处理
  10. 解决docker pull 速度过慢问题 - 使用阿里云加速器
  11. 外文文献检索下载网站哪些比较好用
  12. python 超像素分割
  13. c语言yuv图片cb,YUV格式图像基础
  14. 【大二下复习】新视野大学英语(第三版)第四册读写教程答案 + 期末复习翻译的部分题目
  15. python提取图片中的文字
  16. Sql Server 2008R2 安装教程
  17. 派森编程python_派森(Python)编程有什么用?
  18. 【转】以太坊 2.0 中的验证者经济模型
  19. JAVA并发-Future/CompletableFuture
  20. C++ Reference: Standard C++ Library reference: C Library: cstdio: FILE

热门文章

  1. Java 7:项目代币中的代码示例
  2. 如何在 Ubuntu 14.04 和 12.04 上测试 systemd
  3. nginx配合python_人生苦短我用python[0x02] nginx与python结合
  4. python中链表和数组_数据结构笔记(一):数组、链表|python基础教程|python入门|python教程...
  5. java界面 文件选择器_掌握java技术 必备java工具应用知识
  6. 【技术解决方案】RTP_UDP传输过程中数据丢失的解决方案
  7. java发送文件_java 模拟http发送文件和参数
  8. python rsa加密之后byte类型存储到数据库中_python3 rsa加密
  9. yapi 接口文档_1分钟docker部署顶尖 API 文档管理系统
  10. 鸿蒙系统多会发布,华为官宣鸿蒙系统将发布,还将发布多款新品