【发布时间】:2021-03-28 01:16:38
【问题描述】:
本质上,我在处理通过套接字发送文件的项目时遇到了一个问题。我是一个新手,经过几个小时的搜索,我仍然没有找到可行的解决方案,但我将问题归结为以下代码。
#include <stdio.h>
#include <errno.h>
#include <Windows.h>
int main()
{
const char* fileName = "C:\\Users\\Username\\Desktop\\bugs.jpg";
FILE* f;
fopen_s(&f, fileName, "r");
if (f == NULL)
printf("Null Result");
else
printf("Working");
printf("\nError %d \n", errno);
}
由于某种原因程序无法打开文件,errno 返回值 22,对应于 EINVAL,或无效参数 here。我很困惑,因为我似乎根据 fopen_s 的规范为 fopen_s 提供了正确的参数。任何帮助或指针(哈哈)都非常感谢,谢谢!
【问题讨论】:
-
您的用户名实际上不太可能是
"Username" -
实际用户名是我的真实姓名,因此选择为帖子更改它,因为它的值与主要问题无关:)
-
我的猜测是路径写错了或者文件不存在
-
也许你正在使用 cygwin?或类似的东西,尝试使用相对路径 => 只是为了确保你找到一些东西
-
也许它只是在问题中,但复制/粘贴您的代码会给我一个警告
warning C4566: character represented by universal-character-name '\u202A' cannot be represented in the current code page (1252)并重新输入文件名修复它以及正确打开文件。如果您要打开二进制文件,则需要"rb"。