c - 如果在目录名称之前放置斜杠 '/',则 fopen 在 C 中失败

标签 c linux windows fopen

如果我通过以下任何一种方式在 C 中打开文件,则 fopen 工作正常。

fopen("file.txt", "w");
fopen("/file.txt", "w");
fopen("dir/file.txt", "w");

如果我在目录名称前添加斜杠“/”(如果是 Windows,则为“\”),如下所示,fopen 会失败(返回 NULL)。

fopen("/dir/file.txt", "w");

Windows (MSVC) 和 Linux 上都会发生这种情况。其原因何在?我应该删除起始斜杠“/”吗?

最佳答案

您需要添加“。” “/”前面

例如:fopen("./dir/file.txt", "w");

如果以“/”开头,它将从根目录开始。这就是 fopens 返回 null 的原因

关于c - 如果在目录名称之前放置斜杠 '/',则 fopen 在 C 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46727344/

相关文章:

c - 使用 strcat 的错误字符串连接

c - 从数组中计算素数的最短方法是什么?由于时间限制,所有正常的素性测试都没有通过测试用例

linux - 无法准备上下文 : path ".\r" not found

windows - 保护可移植 Intranet 上的通信(更改 IP 地址)

windows - 关于Winsock Kernel Buffer和Nagle算法的疑问

windows - 使用 powershell 和 cmd 创建带有定义的 .h 文件

c - 在一个 printf() 中使用 strerror() 两次不同的值会触发 Windows 上的错误

c - 随机矩形上的 Windows API 程序...我不知道变量如何获取其值

linux - 无法使用curl从Linux服务器上的firebase存储下载文件会出现段错误

java - 暂停 JVM,仅修复 "jstack -F pid"