我的经验是,尝试使用空字符串文件名执行任何操作都会导致找不到文件 ( ENOENT
),包括ls -ld ''
,touch ''
或mkdir ''
.但我只能尝试 ext4。
虽然对我来说这看起来很合乎逻辑,但是 Posix 中是否有某些东西禁止这样做?
答案1
这Unix 规范的 3.170 点规定文件名不能为空:
由 1 到 {NAME_MAX} 个字节组成的字节序列,用于命名文件。组成名称的字节不得包含 <NUL> 或 <slash> 字符。
因此尝试对空文件名进行操作将会出错。我建议在尝试对其进行操作之前测试字符串是否为空。