【问题标题】:file is not created in system32 folder using fopen function未使用 fopen 函数在 system32 文件夹中创建文件
【发布时间】:2014-08-21 10:14:38
【问题描述】:

我正在使用c语言。我的应用程序是 Windows 中的服务器应用程序。我使用“GetCurrentDirectory”MSDN 函数来获取当前目录。输出为“C:\Windows\system32”。现在我使用“CreateDirectory”函数在“C:\Windows\system32”下创建目录。目录创建成功。现在我在“w”模式下使用了“fopen”函数,在“C:\Windows\System32\MILI_files\”目录中创建文件。但是 fopen 函数返回 NULL,strerror(errno) 返回“没有这样的文件或目录”。 我无法找到导致 fopen 函数返回 NULL 的原因。

【问题讨论】:

    标签: windows service fopen


    【解决方案1】:

    对此真的不乐观,但我想到了一件事。

    尝试以管理员身份运行您的应用,很有可能您的应用没有写入 system32 文件夹的权限,或者甚至无法在其中创建该文件。

    如果我转到 system32,我什至无法在那里创建文件,唯一的操作窗口菜单提供的是新文件夹,只有当我接受 Windows UAC 提示时,我才能删除文件夹或文件

    编辑:要测试您的应用程序是否正常工作并且问题是无法在 sys32 中创建新文件,请尝试在桌面上的某处创建文件以查看功能是否在那里工作

    【讨论】:

    • 但是如果我手动添加文件(右键单击并添加新文档)。然后文件被创建。如上所述,我已经在我的 Windows 设置中以管理员身份登录,但仍然无法使用 fopen 功能创建文件。
    • 您以用户身份登录,但应用程序没有以管理员权限运行。尝试这样做:通过单击开始按钮 打开用户帐户控制设置,然后单击控制面板。在搜索框中,键入 uac,然后单击更改用户帐户控制设置。关闭 UAC,将滑块移动到从不通知位置,然后单击确定。尝试您的应用程序以查看它是否有效,然后将 UAC 转回它之后的位置。如果您的应用程序在 UAC 关闭的情况下工作,则意味着您需要通过右键单击它并选择“以管理员身份运行”以管理员身份运行您的应用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2011-02-19
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多