dirent.h 是 POSIX.1 标准定义的 unix 类目录操作的头文件,包含了许多 UNIX 系统服务的函数原型,例如 opendir 函数、readdir 函数。

1. 基本函数接口

1.1 opendir/closedir

DIR *opendir(const char *pathname);
int closedir (DIR *__dirp);

返回值:

  • 若成功则返回指针;
  • 若出错则返回NULL;

1.2 readdir

struct dirent *readdir(DIR *dp); 

返回值:

  • 若成功则返回指针,
  • 若在目录结尾或出错则返回NULL。

2. 实现 ls:列出一个目录下所有文件的名字

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>int main(int argc, char *argv[]){DIR *dp;struct dirent *dirp;if (argc != 2){fprintf(stderr, "usage: ls <dir>");exit(1);}if ((dp = opendir(argv[1])) == NULL){fprintf(stderr, "cannot access %s", argv[1]);exit(1);}while ((dirp = readdir(dp)) != NULL){printf("%s\n", dirp->d_name);}closedir(dp);return 0;
}

UNIX 环境高级编程(四)—— dirent.h相关推荐

  1. Unix环境高级编程中的apue.h配置

    本文解释Unix环境高级编程的环境搭建中,apue.h如何使用安装及问题解决. 使用的是<Unix环境高级编程>第三版: 系统为CentOS 7.4,64位(Linux系统都可参考): 文 ...

  2. apue.h头文件(UNIX环境高级编程)

    相信非常多初学<UNIX环境高级编程>的朋友都会遇到一个问题,执行里面的实例(download: http://www.apuebook.com/ )时就出现故障,提示 "错误: ...

  3. Unix——学习《Unix环境高级编程》找不到“apue.h”方法

    在运行<UNIX环境高级编程>中的程序时会遇到apue.h包头找不到的情况,这是作者为了方便程序书写封闭了一些功能函数和错误处理等.在http://www.apuebook.com中可以下 ...

  4. UNIX环境高级编程(第三版)关于apue.h的用法

    UNIX环境高级编程(第三版)中的例子用到apue.h这个头文件,但是书里面写的地址已经不能访问. 经过一番查找之后,找到如下解决方案: 1.到www.apuebook.com上下载第2版的源码,也可 ...

  5. (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  6. Unix环境高级编程 笔记

    Unix环境高级编程(第二版)学习笔记 这是一次较长时间的整理,然而跳跃了一些章节和很多知识点,仍然是很不完善很不全面的. 前言 操作系统某些问题 严格意义上,可将操作系统定义为一种软件,它控制计算机 ...

  7. 开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2

    Preface 话说,昨天开始尝试着去改变自己,从基础的习惯开始,11:30准时睡觉,平时差不多12:30才睡觉.按理说,比平时早了一个小时睡觉吧,然后我就把闹钟提前了45分钟,想着还能比平常多睡15 ...

  8. UNIX环境高级编程笔记

    1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len);   SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务:   ...

  9. [阅读体会] UNIX环境高级编程

    文章目录 写在开始阅读前 (我会的知识点,在体会里是不提的,并不是书中没有,这里着重于记录我之前不会的,但读过书之后学会的.) 第一章 第二章 2.1 引言 2.2 UNIX标准化 2.2.1 ISO ...

  10. UNIX环境高级编程-环境配置

    背景说明: 学习<UNIX环境高级编程>,里面的示例程序用到了作者写的模块. 把第一个示例代码敲入,结果当头一棒. 咦,怎么编不过去. 网上找资料发现好人不少,问题终于解决. 特此,把我的 ...

最新文章

  1. 问题二:相关性怎么引入?
  2. php中访问控制关键字,PHP 关于访问控制和运算符优先级简介
  3. SIGIR 2019 开源论文 | 基于图神经网络的协同过滤算法
  4. Spring-Boot——Cache
  5. 大数据面试题总结(附答案)
  6. strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
  7. 名校大厂 AI 高手云集,芒果 TV 音视频算法大赛硕果累累
  8. Kudu的Using Apache Kudu with Apache Impala(官网推荐的步骤)
  9. 【C++ Primer 第10章】 10.4.1 插入迭代器
  10. 远卓:数字化转型的精益化思考
  11. PHP的消息队列详解
  12. 【stata】一些关于数据处理的基础知识(备查代码)
  13. ubuntu opencv 安装
  14. 西部数据移动硬盘哪个型号好_西部数据移动硬盘怎么样(西数移动硬盘系列区别)...
  15. almost unreal歌词翻译_Almost Lover歌词
  16. 【WebGIS实例】(1)MapboxGL绘制端点有符号的线
  17. 【RabbitMQ】基础四:路由模式(Routing)
  18. Cobbler 3.x 部署实战
  19. php采集今日头条出现问题,PHP采集今日头条内容页时,解析页面上的JS转为json
  20. CSS笔试题: 实现表格首行首列固定和自适应窗口

热门文章

  1. linux中使用Vsftpd+nginx 搭建文件服务器
  2. Hive常见的存储格式的区别与应用场景
  3. 计网笔记(一) 什么是因特网
  4. Watermaker水位线/水印
  5. 三菱fx2n做从站的modbus通讯_三菱FX2N与昆仑通态(MCGS)无线编程口通讯例程
  6. 编写程序,用户输入一个位以上的整数,输出其百位以上的数字。例如用户输入1234.则程序输出12.
  7. 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
  8. python之条件判断、循环和字符串格式化
  9. spark hive 结合处理 把多行变成多列
  10. java中得到文件MIME类型的几种方法(转)