电脑技术学习

UNIX 文件系统基本操作

dn001

  本文示例源代码或素材下载

  引言

  Unix® 中任何事物都是文件 的观点意味着,您将始终会与文件和目录打交道,无论您开发的是何种类型的应用程序。任何事物都存储为文件,从数据到配置文件、甚至是设备,在对 UNIX 编程经过几个小时的学习之后,stdio.h 系统 Header 中的函数将能够为您提供很好的帮助。

  一个时常困扰 UNIX 编程新手的问题是,如何浏览一个目录,并对其中的文件、目录和符号链接进行相应的处理。如何能够获取它们的列表,以及如何能够确定它们究竟是什么?

  请继续阅读本文,以学习如何使用 dirent.h 函数系列 (opendir()/readdir()/closedir()) 来读取目录中的条目,以及使用 stat() 函数来确定这些条目所对应的内容。

  开始之前

  本文中的示例代码(请参见下载)使用 C/C++ 开发工具 (CDT) 在 Eclipse 3.1 中编写,readdir_demo 项目是一个托管的 Make 项目,该项目通过使用 CDT 程序生成规则构建。您在这个项目中找不到 Makefile,但是它们非常简单,如果需要在 Eclipse 之外编译这些代码,您可以很容易地生成相应的 Makefile。

  如果您还没有尝试使用 Eclipse,那么您真的应该试一试。它是一个非常好的集成开发环境 (IDE),并且随着发行版本的不断更新,它变得更加完善。它来自于生命力顽强的 EMacS 以及基于 Makefile 的开发工具。请参阅本文结尾处的参考资料部分,其中提供了一些很好的 Eclipse 文章的链接。

  读取目录条目

  对于一个给定路径的目录,应该如何读取其中的条目呢?您无法像操作文件那样打开目录(使用 open() 或 fopen() 函数),并且即便可以这样做,所得到的数据可能是您正在使用的文件系统的专用格式,而对于不十分熟悉的程序员来说,直接访问这些数据将使情况变得更糟。

标签: