代码之家  ›  专栏  ›  技术社区  ›  Galaxy

fopen无法打开windows主机文件

  •  0
  • Galaxy  · 技术社区  · 6 年前

    FILE* target 在此处,应打开windows主机文件并将其写入:

    FILE* target;
    target = fopen("C:\\windows\\sysnative\\drivers\\etc\\hosts", "r+");
    if (target != NULL) {
        printf("true\n");
    } else {
        printf("false\n");
    }
    

    但是,在打开windows主机文件时,它无法打开该文件。明确地 fopen() 返回 NULL false \ s、 我可以用记事本打开它。然而 fopen() 无法打开该文件。它可以打开当前工作目录中的任何文件,或其中的嵌套目录中的任何文件,但无法打开主机文件。也许我的道路有问题?我错过什么了吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   user9234737 user9234737    6 年前

    您需要管理员权限才能在windows上打开主机文件,请尝试以管理员身份运行脚本。

        2
  •  0
  •   doron    6 年前

    当文件操作在Windows上失败时,您可以调用 GetLastError() (Posix系统上的“errno”)查找操作失败的原因。这将返回一个错误代码,您可以查找它失败的原因