[英]C++ program to count number of objects in a particular Linux directory
我正在尝试使用C ++在Linux中编写一个程序,该程序计算用户指定目录中文件和文件夹的数量,但是我读得越多,就会感到困惑。 我是C ++和一般编程人员的新手,我知道我一开始就有很大的障碍,但是我不确定要从哪里开始着手阅读。 我已经阅读了一些有关派生流程和系统调用的信息,但是如果有人简要概述了实现该流程所必须经历的流程,那么我可以自己深入研究各种功能。
使用C ++, Boost.FileSystem为您提供方便的工具来实现所需的功能。
如果要学习基本的C API,请查看GNU C库手册中的文件系统接口 。
如果您真的想以Linux方式进行操作,请查看opendir
, readdir
和closedir
系统调用。 有一个例子在这里 ,基本上是你正在尝试写程序(它打印的内容,而不是对其计数,虽然)。
如果我是您,我会坚持使用像Georg建议的更高级别的库。
最简单,最跨平台的方法是使用boost :: filesystem 。 在UNIX(Linux,Mac OS X,Free BSD等)上,有多种方法可以执行此操作。 正如已经指出的那样, opendir , readdir和closedir是可能的。 我应该指出,最好使用可重入的readdir_r (这意味着可以安全地从多个不同的线程中同时使用),而不是使用readdir_r ,而普通的readdir调用是不可重入的(因此不能由readdir保证)单一UNIX规范/ IEEE Std.1003.1,又名POSIX(是线程安全的)。 尽管这些可能不是最容易使用并且不适用于此特定任务,但对于执行文件系统的其他操作,您可能还对nftw和ftw感兴趣,它们特别适合于对文件系统的子树进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.