gpt4 book ai didi

c++ - linux -- 从/proc/partitions 内容到我能做的事情 'ls'

转载 作者:太空狗 更新时间:2023-10-29 12:06:27 25 4
gpt4 key购买 nike

我正在编写(又一个)文件管理器(以学习东西:)并且有一个愚蠢/愚蠢的 block 。

在 Linux 上,要枚举可以包含文件的存储设备,我认为最好的方法是解析/proc/partitions 文件的内容并提取/dev/sda* 条目。 (对吗?)但是,我如何将/dev/sda* 映射到我可以通过编程方式探索以获取目录内容的内容?我打算使用 boost/文件系统,但由于我不能 ls/dev/sda 我假设我不能使用 boost 来迭代它。

概要:我如何将/dev/sda* 转换成我可以“ls”的东西

最佳答案

我认为您误解了 /dev/sd* 对程序的实际意义。它们是设备而不是目录。您使用 mount 命令告诉操作系统将设备“解释”为文件系统,并将其附加到某处(root 或其他)。正是这一步使它成为文件系统某处的“目录”。因此,除了原始 I/O 命令(您不想执行)之外,挂载文件系统,然后尝试探索它。

这真的有点像打开一个文件。当你这样做时,操作系统会为你的程序提供一个字节流,你可以通过它随机访问文件。但是在磁盘上,该文件实际上可能分散在整个硬盘驱动器(或任何设备)上。但是操作系统正在将其“制作”成一种“不错”的格式,以便您透明地处理。访问目录/文件列表时,磁盘本身也是如此。

我希望我的示例能够更清楚地说明为什么您尝试做的事情并不像您想象的那么简单。

关于c++ - linux -- 从/proc/partitions 内容到我能做的事情 'ls',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com