告诉一个在 21 世纪坐下来阅读 K&R 的人)))他们写道,在 Unix 中,文件夹是一个文件,您可以使用它执行 _open("dirname",...) ,然后使用 stat(fd ,...))。但是我有Win7(那里有文件夹吗?),我创建了文件夹,但是_open函数的结果是-1。具体尝试如下: fd = _open("dirname", _S_IREAD, 0); 函数参数没有找到在哪里阅读这些关于 Windows 的各种 _S_IREAD 等等(这种情况可能因操作系统而异?)。显然没有人在如此低的水平上工作,也没有人感兴趣。我想就以下问题寻求帮助:
- 在哪里阅读 _open for microsoft 操作系统
- fd = _open("dirname", _S_IREAD, 0) 在我的情况下应该如何;?? 用什么参数?
ps 该文件夹确实存在于需要的地方。因为 _open 使用创建的纯文本文件
文件夹是一个文件,从某种意义上说,它也是一个可以在文件系统中通过其名称访问的信息块;一些文件功能也可以对文件夹进行操作。几乎所有现代操作系统都是如此。在 NTFS 结构中,一个文件夹也由一个文件表示,只是,与普通文件不同的是,它通常没有 $DATA 属性,但有一个$INDEX_ROOT属性。
可以在此处阅读 _open 函数在 Microsoft CRT 中的工作原理。您将无法在 Windows 中使用它打开文件夹,因为它不允许您设置其他标志,因此只能用它打开普通文件。您可以使用CreateFile函数打开文件夹,并传递 FILE_FLAG_BACKUP_SEMANTICS 标志。但是您不能像从文件中那样直接从文件夹中读取字节:此处给出了与文件夹一起使用的函数列表。例如,您可以像这样获取文件夹的创建时间: