我在 Windows 7 上运行了一个在 Cygwin 下编译的程序,并传递了“NUL”作为输出文件名。它实际上没有抑制输出,而是在当前目录中创建了一个名为“NUL”的文件。 (显然它需要“/dev/null”,即使在 Windows 上也是如此。)现在我无法删除这个“NUL”文件!
我已经试过了:
- Windows 资源管理器 - 错误:“无效的 MS-DOS 函数”(是的,这就是它所说的!)
- 使用“del NUL”的命令提示符 - 错误:“文件名、目录名或卷 标签语法不正确。”
- 删除整个目录 - 与删除文件相同
remove()
在 C 程序中 - 也失败
如果不安装完整的 Cygwin 环境并在 Cygwin 下编译 C 程序,我如何才能摆脱这些 NUL 文件(我现在有几个)?
最佳答案
打开命令提示符并使用这些命令首先重命名然后删除 NUL 文件:
C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt
使用 \\.\
前缀告诉高级文件 I/O 函数将未解析的文件名传递给设备驱动程序 - 这样您就可以访问其他无效的名称。
阅读this article关于 Windows 中的有效文件/路径名和各种保留名称。
关于c - 在 Windows 上删除名为 "NUL"的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883481/