Nht_e0 Asked: 2018-07-14 10:01:36 +0800 CST2018-07-14 10:01:36 +0800 CST 2018-07-14 10:01:36 +0800 CST 我们可以在 unix/linux 中的目录上使用 read()、write() 吗? 772 我们可以像在 Unix/Linux 中的任何其他文件上一样在目录上使用read(),吗?write()我在这里感到困惑,因为目录也被视为文件。 directory read 2 个回答 Voted thrig 2018-07-14T10:14:38+08:002018-07-14T10:14:38+08:00 不是真的,不,有专门的 directory, opendir, closedir, dirfd, fdopendir, readdir, readdir_r, rewinddir, seekdir, telldir(3) - directory operations 对目录(来自 OpenBSD)和现代文件系统(或者实际上是十年或两年或更长时间的任何东西)进行操作的函数绝不会将目录编码为普通文件。 Best Answer schily 2018-07-14T10:36:39+08:002018-07-14T10:36:39+08:00 某些文件系统允许read()在目录上使用,但这必须被视为错误,因为此类目录中的数据结构可能未记录。 您永远不能使用write(),因为这会破坏受影响目录的完整性。 目录的官方接口是opendir(), closedir() readdir(), telldir(), seekdir()
不是真的,不,有专门的
对目录(来自 OpenBSD)和现代文件系统(或者实际上是十年或两年或更长时间的任何东西)进行操作的函数绝不会将目录编码为普通文件。
某些文件系统允许
read()
在目录上使用,但这必须被视为错误,因为此类目录中的数据结构可能未记录。您永远不能使用
write()
,因为这会破坏受影响目录的完整性。目录的官方接口是
opendir(), closedir() readdir(), telldir(), seekdir()