1.  int mkdir(const char *pathname, mode_t mode);   头文件 :<sys/stat.h>  <sys/types.h>

功能:创建一个目录
参数:pathname:目录的路径名
mode:目录的权限(可读,可写,可执行)
返回值:成功返回0,失败返回-1

2.   DIR *opendir(const char *name);      头文件 :<sys/types.h>    <dirent.h>

功能:获得目录流
参数:要打开的目录
返回值:成功:目录流  ;失败:NULL

3.   struct dirent *readdir(DIR *dirp);   头文件 :<dirent.h>
功能:读目录
参数:要读的目录流
返回值:成功返回结构体指针,失败返回NULL

4.   int closedir(DIR *dirp);        头文件 :<dirent.h>  <sys/types.h> 
功能:关闭目录流
参数:目录流
返回值:成功0 ;失败-1

例子:通过上述函数实现 shell 中的 ls 功能

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
int main(int argc, const char *argv[])
{
mkdir("./test",);//在当前路径下,创建一个目录 目录权限0666
// DIR *opendir(const char *name);
DIR *dir = NULL;
dir = opendir("./");//打开一个目录,成功返回路径名
if(dir == NULL)
{
perror("opendir fail : ");
exit();
} // struct dirent *readdir(DIR *dirp);
struct dirent * ret = NULL; #if 1 //循环读,直到读完当前目录下的内容
int i=;
while()
{
ret = readdir(dir);//读取这个目录,返回 DIR *指针,目录流
if(ret == NULL)
{
break;
perror("read fail : ");
}
// 去除 . 和 ..隐藏文件
if( strcmp(ret->d_name,".")== || strcmp(ret->d_name,"..")== )
{
continue;
}
i++;
printf("[%d] %s\n",i,ret->d_name);
}
#endif
closedir(dir);//关闭
return ;
}

测试:

目录文件的操作函数 mkdir ,opendir,readdir,closedir的更多相关文章

  1. C语言对文件的操作函数用法详解2

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const  ...

  2. C语言对文件的操作函数用法详解1

    在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...

  3. Python 中当前位置以及目录文件遍历操作

    Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...

  4. 利用目录函数(opendir,readdir,closedir)查找文件个数

    如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...

  5. UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作

     1 File Times 每个文件会维护三个时间字段,每个字段代表的时间都不同.如下表所示: 字段说明: st_mtim(the modification time)记录了文件内容最后一次被修改的时 ...

  6. go语言中常用的文件和文件夹操作函数

    package main; import ( "os" "log" "time" "fmt" ) //一些常用的文件操作 ...

  7. C语言的文件读写操作函数小结

    一.文件打开 使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE包含了所有用来控制流的必要的信息.函数原型为: FILE ...

  8. R8—批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

    一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到 ...

  9. Linux文件IO操作函数概述

    文件概述 Linux中,一切皆文件.文件为操作系统服务和设备提供了一个简单而一致的接口.这意味着程序完全可以像使用文件那样使用磁盘文件.串行口.打印机和其他设备. 也就是说,大多数情况下,你只需要使用 ...

随机推荐

  1. vue - blog开发学习2

    首页博客列表的开发 1.修改index.vue,使能够支持列表功能 <template> <div> <PostList v-for="(item,index) ...

  2. 服务器安装宝塔linux系统控制面板

    一.使用远程连接软件 (如 Putty.XShell) 连接你的Linux服务器,本教程以 Putty 为例. 1   启动 Putty.exe 程序,进入 Putty 主界面. 2  在 Host ...

  3. spring3+structs2整合hibernate4时报org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void sy.dao.impl.UserDaoImpl.setSessionFactory(org.hibernate.SessionFactory);

    今天在spring3+structs2整合hibernate4时报如下错误,一直找不到原因: org.springframework.beans.factory.BeanCreationExcepti ...

  4. 请问如何实现字符串UTF8->BIG5,BIG5->UTF8。保证送分。-Java/JavaSE

    请问如何实现字符串UTF8-> BIG5,BIG5-> UTF8. ------回答--------- ------其他回答(100分)--------- public String BI ...

  5. redis集群扩容(添加新节点)

    一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0. ...

  6. vue 页面回退mounted函数不执行的问题及解决方法

    前言 最近做项目碰到一个很头大的问题--从a页面跳到b页面进行编辑,编辑完再返回a页面,却没走a页面的钩子函数mounted,数据没有更新 经过一番面向百度研究,终于找到了问题所在.接下来就记录一下这 ...

  7. C# 16进制转字符串,字符串转16进制

    { //========================================================== //16进制转字符串 public static byte[] HexTo ...

  8. Vue学习笔记【14】——自定义指令

    1.自定义全局和局部(私有)自定义指令 // 自定义全局指令 v-focus,为绑定的元素自动获取焦点: ​ Vue.directive('focus', { ​ inserted: function ...

  9. 【NOI2019模拟2019.6.29】字符串(SA|SAM+主席树)

    Description: 1<=n<=5e4 题解: 考虑\(f\)这个东西应该是怎样算的? 不妨建出SA,然后按height从大到小启发式合并,显然只有相邻的才可能成为最优答案.这样的只 ...

  10. 骚操作:c++如何用goto便捷地写人工栈?

    在如今所有NOI系列赛事已经开全栈的时势下,人工栈已经离我们很远很远. 所以这博客就是我弄着玩的. 首先我们要清楚的是c++的goto写法: loop:; - goto loop; 在运行到goto时 ...