我正在尝试使用C ++在Linux中编写一个程序来计算用户指定目录中的文件和文件夹的数量,但是我读的越多,我得到的就越混乱。我是C ++和一般编程的新手,我知道我在开始时遇到了很大的障碍,但我不完全确定从哪里开始阅读。我已经阅读了一些关于分叉进程和系统调用的内容,但是如果有人要简要介绍我必须完成的过程,那么我可以自己更深入地阅读各种函数。
答案 0 :(得分:4)
使用C ++ Boost.FileSystem为您提供了方便的工具来实现您的目标。
如果您想学习基本的C API,请查看GNU C库手册中的File System Interface。
答案 1 :(得分:3)
如果确实希望以Linux方式执行此操作,请查看opendir
,readdir
和closedir
系统调用。有一个示例here基本上是您尝试编写的程序(它打印内容而不是计算它们)。
如果我是你,我会坚持像Georg建议的更高级别的图书馆。
答案 2 :(得分:0)
答案 3 :(得分:0)
最简单,最跨平台的方法是使用boost::filesystem。在UNIX(Linux,Mac OS X,Free BSD等)上,有很多方法可以做到这一点。正如已经指出的那样,opendir,readdir和closedir是可能的。我应该指出,不是使用readdir,最好使用可重入的readdir_r(意味着可以安全地从多个不同的线程同时使用),而普通的readdir调用不是可重入的(因此单一UNIX规范/ IEEE标准1003.1又称POSIX不保证是线程安全的。虽然这些可能不是最容易使用且不适合这个特定任务,但对于其他操作文件系统的行为,您可能也对nftw和ftw感兴趣,它们特别适合表演在文件系统的子树上。