当前位置:  技术问答>linux和unix

linux下C编程,需要一个函数判断目录是否存在

    来源: 互联网  发布时间:2016-01-01

    本文导语:  linux下C编程,需要一个函数判断目录是否存在,如果不存在,如何创建这个目录。stat函数好像不行吧?谢谢 | stat函数好象是可以检测目录是否存在的 mode_t        st_mode; 可以通过这个来...

linux下C编程,需要一个函数判断目录是否存在,如果不存在,如何创建这个目录。stat函数好像不行吧?谢谢

|
stat函数好象是可以检测目录是否存在的
mode_t        st_mode;
可以通过这个来判断得到的是一个目录还是其他东西
       S_IFMT     0170000   bitmask for the file type bitfields
       S_IFSOCK   0140000   socket
       S_IFLNK    0120000   symbolic link
       S_IFREG    0100000   regular file
       S_IFBLK    0060000   block device
       S_IFDIR    0040000   directory  //如果为这个值,说明它是个目录
       S_IFCHR    0020000   character device
       S_IFIFO    0010000   fifo
       S_ISUID    0004000   set UID bit
       S_ISGID    0002000   set GID bit (see below)
       S_ISVTX    0001000   sticky bit (see below)
       S_IRWXU    00700     mask for file owner permissions
       S_IRUSR    00400     owner has read permission
       S_IWUSR    00200     owner has write permission
       S_IXUSR    00100     owner has execute permission
       S_IRWXG    00070     mask for group permissions
       S_IRGRP    00040     group has read permission
       S_IWGRP    00020     group has write permission
       S_IXGRP    00010     group has execute permission
       S_IRWXO    00007     mask for permissions for others (not in group)
       S_IROTH    00004     others have read permission
       S_IWOTH    00002     others have write permisson
       S_IXOTH    00001     others have execute permission
 ENOENT  A  component  of the path file_name does not exist,
              or the path is an empty string.
返回这个错误说明不存在

可以man 2 stat看一下,里面解释挺详细的
创建目录的方法:
mkdir("目录名","权限");
mkdir("/home/txt/a.txt",07777);

|
还可以用函数  DIR * opendir(const char * name);
 
函数说明  opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,接下来对目录的读取和搜索都要使用此返回值。
 
返回值  成功则返回DIR* 型态的目录流,打开失败则返回NULL。
 
错误代码  EACCESS 权限不足
EMFILE 已达到进程可同时打开的文件数上限。
ENFILE 已达到系统可同时打开的文件数上限。
ENOTDIR 参数name非真正的目录
ENOENT 参数name 指定的目录不存在,或是参数name 为一空字符串。
ENOMEM 核心内存不足。
 

|
stat是可以作到的,具体的返回值请参考man 3 stat,一般我都不太记这些东西

    
 
 

您可能感兴趣的文章:

  • Linux c++虚函数(virtual function)简单用法示例代码
  • 在dos下访问内存的MK_FP函数在linux下对应什么函数?int86()函数呢?
  • linux c下利用srand和rand函数生成随机字符串
  • 哪位大侠有unix/linux的函数和函数所在的文件
  • Linux下c基于openssl生成MD5的函数
  • linux中,动态库中的函数如何调用静态库中的函数
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • linux0.11内核有些函数是封装的吗?比如timer_interrupt()函数。
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • linux下自带了soup函数库和XML处理函数库了吗?
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • linux下类的成员函数不可以作为自定义的信号处理函数么?
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • Linux有定时器函数吗?是不是要自己实现?如果有的话是什么函数呢?谢谢
  • linux c malloc函数定义及用法详解
  • linux c入门问题,大家指教。system函数和exec函数的区别。
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • linux 2.6.35.4 内核中已没有netif_rx_schedule()函数,那替代函数是啥?
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • wcslen 等函数能用在linux下面吗?文件路径搜索有没有跨平台的函数库?
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • Linux 下析构函数为什么不是虚函数?
  • linux->shell-> if 条件判断,关于软连接的判断!
  • linux 下的自解压文件是什么格式,如何判断文件是否为自解压c++或者脚本判断均可
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • 如何判断文件描述符合法?(Linux+C)
  • 如何判断linux操作系统的某个分区是否格式化
  • 在linux下用程序如何判断出主板是什么芯片组?
  • linux脚本中命令运行结果判断
  • 想写个shell脚本configure和make一个Linux Kernel怎么判断成功还是失败呢?
  • linux 在shell里read num怎样判断输入的是合法的数字。?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教高手:C语言怎么知道一个进程是否存在(Linux下)
  • 如何WINDOWS2000和LINUX共存在一个硬盘
  • 怎样让linux在启动时,启动存在ip冲突的网卡?与内核选项有关吗?
  • Linux下C编程,如何判断制定路径的文件是否存在?
  • 利用linux命令cat, uniq, sort找出file1中存在,file2中不存在的文本行
  • Linux下是否存在磁盘碎片问题和内存碎片问题?
  • ubuntu为例,linux自带的拨号程序的配置文件存在哪里?
  • linux下如何操作已经存在的TCP连接
  • Linux使用mv命令重命名时,新文件名已存在,会把原来的覆盖掉,却不问用户,怎么解决?
  • linux下,tomcat进程存在却停止了服务
  • linux 怎么判断文件夹是否存在
  • 在linux下怎么查看用户的密码?怎么知道有这样一个用户存在?
  • LINUX shell 日志文件存在判断
  • 在linux中,想查询/proc文件中的某个目录是否存在,求助如何进行检测
  • linux文件是否存在问题
  • linux下能用tar命令更新已经存在的.tar.gz压缩包么?
  • 在编译uClinux时arm-linux-20070808-gcc不存在的问题
  • C盘装的是win2000,D盘装的是RedHat7.2 linux,我进入win2000后,看见D盘仍然存在,......
  • win98、win2000、linux如何共存在一块硬盘上???(急!!在线等待)
  • win7系统的虚拟机上运行linux RHEL 5.6 安装jdk 报错,jdk是直接在linux系统下上网下载的,不存在文件传输问题。
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3