来自 fopen_s 的莫名其妙的“无效参数”错误

问题描述

本质上,我在处理通过套接字发送文件的项目时遇到了一个问题。我是个新手,经过几个小时的搜索,我仍然没有找到可行的解决方案,但我已将问题归结为以下代码。

#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。

Picture

简而言之,不要试图偷工减料。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...