【问题标题】:Access is denied while running a C program file运行 C 程序文件时访问被拒绝
【发布时间】:2020-09-17 06:37:25
【问题描述】:
S:\C>gcc update.c -o update

S:\C>.\update.exe
Access is denied.

文件中的代码

#include <stdio.h>

int main() {
    struct fish {
        char name;
        int id1;
        int id2;
        float f1;
        double d1;
        double d2;
        double d3;
    };
    struct fish f;
    printf("%d\n", sizeof(f));
    printf("%d\n", &f.name);
    printf("%d\n", &f.id1);
    printf("%d\n", &f.id2);
    printf("%d\n", &f.f1);
    printf("%d\n", &f.d1);
    printf("%d\n", &f.d2);
    printf("%d\n", &f.d3);
    return 0;
}

当我安装MinGW 时,它运行了好几天(即使防病毒实时保护已打开),现在当防病毒实时保护打开或关闭时它给我Access is denied 错误。

可能有什么问题?

【问题讨论】:

  • 这似乎不是 C 问题...我相信您的操作系统拒绝访问可执行文件。
  • 起初我会尝试从我的用户目录运行它,并确保所有权和访问控制设置正确。您可以在此处找到有关此错误的一些信息:windowsreport.com/access-is-denied-windows-10
  • @Anonymous BTW 你的代码有问题,printf 的格式不正确,printf("%d\n", &amp;f.name);,你应该删除&amp; 运算符,你应该在之前初始化结构打印,struct fish f = {0,0,0,0,0,0,0};.
  • @anastaciu 我的意思是匿名,对不起
  • @Anonymous,你的意思是他们没有执行对吗?无论如何,我只是指出代码中的问题,当您解决问题时,您也应该修复该代码。如果您还没有尝试过,您应该尝试的另一件事是给您的可执行文件一个不同的名称。

标签: c mingw


【解决方案1】:

右击你电脑的C:盘,点击属性->安全->高级按钮,找到所有者部分(即TrustedInstaller)然后点击改变。单击高级,然后单击立即查找。滚动查找您的用户(或在“输入对象名称”下输入您的用户名)。

现在点击确定按钮,确保“替换子容器和对象的所有者”未选中,点击确定,点击编辑...按钮,点击您的用户名,选中“完全控制”框,然后在打开的对话框中点击“确定”。

请注意,您必须拥有足够的权限才能执行此操作。

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多