我所知道的每个托管实现都有某种方式来表示以下概念。是否有使用中的实现没有?如果没有,为什么C不需要标准API,以便可以使用更多的可移植代码?
答案 0 :(得分:3)
因为在开发C时,目录或文件系统的概念并不像现在那样广泛。您如何在没有文件系统但仍与C兼容的系统上实现您描述的所有内容?你不能。
C文件是一个流,也可以是磁带录音机中的磁带。很常见。目录是柜子的架子。去你的C代码中删除这些......
答案 1 :(得分:3)
- 创建目录
我的理解(我从未使用过它们)是IBM mini(ex OS 400,我不记得他们现在的名字)和大型机(我认为他们现在的名字是zSeries)有不同的方式组织他们的它不能很好地映射到你(或我的)目录概念的文件。
- 在目录中创建文件或目录,其中包含目录分隔符的一些概念
VMS文件名的结构类似于D:[A.B.C]name.ext;ver
自C90以来,
- 文件移动(可以实现为复制+移除,但通常操作系统有更高效/原子的方式,例如inode)
重命名出现在C中。
- 最大文件名长度
Unix在一段时间内没有它(好吧,它是按文件系统而有些它有如此之高以至于认为有一个没有意义。)
- 仅包含ASCII字母字符的文件名(可能不区分大小写)
我非常怀疑IBM大型机在为所有内容使用EBCDIC时使用ASCII作为文件名。