问题描述
本质上,我在处理通过套接字发送文件的项目时遇到了一个问题。我是个新手,经过几个小时的搜索,我仍然没有找到可行的解决方案,但我已将问题归结为以下代码。
#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 提供了正确的参数。任何帮助或指点(哈哈)都非常感谢,谢谢!
解决方法
感谢评论,我发现了它不起作用的原因。本质上,我是从文件属性中复制“对象名称”字段以节省输入时间。不知何故,这会拖着一个不可见的 '\u202A' 字符,它完全破坏了 fopen_s。
简而言之,不要试图偷工减料。