目录文件的操作函数 mkdir ,opendir,readdir,closedir
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的更多相关文章
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- Python 中当前位置以及目录文件遍历操作
Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...
- 利用目录函数(opendir,readdir,closedir)查找文件个数
如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...
- UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作
1 File Times 每个文件会维护三个时间字段,每个字段代表的时间都不同.如下表所示: 字段说明: st_mtim(the modification time)记录了文件内容最后一次被修改的时 ...
- go语言中常用的文件和文件夹操作函数
package main; import ( "os" "log" "time" "fmt" ) //一些常用的文件操作 ...
- C语言的文件读写操作函数小结
一.文件打开 使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE包含了所有用来控制流的必要的信息.函数原型为: FILE ...
- R8—批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数
一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到 ...
- Linux文件IO操作函数概述
文件概述 Linux中,一切皆文件.文件为操作系统服务和设备提供了一个简单而一致的接口.这意味着程序完全可以像使用文件那样使用磁盘文件.串行口.打印机和其他设备. 也就是说,大多数情况下,你只需要使用 ...
随机推荐
- vue - blog开发学习2
首页博客列表的开发 1.修改index.vue,使能够支持列表功能 <template> <div> <PostList v-for="(item,index) ...
- 服务器安装宝塔linux系统控制面板
一.使用远程连接软件 (如 Putty.XShell) 连接你的Linux服务器,本教程以 Putty 为例. 1 启动 Putty.exe 程序,进入 Putty 主界面. 2 在 Host ...
- 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 ...
- 请问如何实现字符串UTF8->BIG5,BIG5->UTF8。保证送分。-Java/JavaSE
请问如何实现字符串UTF8-> BIG5,BIG5-> UTF8. ------回答--------- ------其他回答(100分)--------- public String BI ...
- redis集群扩容(添加新节点)
一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0. ...
- vue 页面回退mounted函数不执行的问题及解决方法
前言 最近做项目碰到一个很头大的问题--从a页面跳到b页面进行编辑,编辑完再返回a页面,却没走a页面的钩子函数mounted,数据没有更新 经过一番面向百度研究,终于找到了问题所在.接下来就记录一下这 ...
- C# 16进制转字符串,字符串转16进制
{ //========================================================== //16进制转字符串 public static byte[] HexTo ...
- Vue学习笔记【14】——自定义指令
1.自定义全局和局部(私有)自定义指令 // 自定义全局指令 v-focus,为绑定的元素自动获取焦点: Vue.directive('focus', { inserted: function ...
- 【NOI2019模拟2019.6.29】字符串(SA|SAM+主席树)
Description: 1<=n<=5e4 题解: 考虑\(f\)这个东西应该是怎样算的? 不妨建出SA,然后按height从大到小启发式合并,显然只有相邻的才可能成为最优答案.这样的只 ...
- 骚操作:c++如何用goto便捷地写人工栈?
在如今所有NOI系列赛事已经开全栈的时势下,人工栈已经离我们很远很远. 所以这博客就是我弄着玩的. 首先我们要清楚的是c++的goto写法: loop:; - goto loop; 在运行到goto时 ...