cfile fopen fopen_s win10下打开文件失败

时间:2021-11-10 10:48:01

vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下:

由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统盘下 创建文件失败。返回拒绝访问错误。

UAC是微软为了提高Windows的安全性,自Windows Vista开始引入的新安全机制。

传统的NT内核系统依靠access token来做权限处理,access token由当前用户所在的用户组的权限决定。而由于长期以来的不当使用习惯问题,几乎所有Windows上用户所在的组都是管理员。

在启用UAC之后,系统会额外引入一个filtered token,并且这个token默认只能按照Standard User的权限去执行。所以这个token也通常被叫做limited filtered token。

因为使用的vs程序可以直接在 Visual Studio 上进行提升UAC 权限:

cfile fopen fopen_s  win10下打开文件失败

上图是UAC 的默认级别:asInvoker (/level='asInvoker')

然后把该权限提升为:highestAvailable (/level='highestAvailable')

其他的设置不用动,这样在win10下就可以使用fopen打开成功了。

参考:https://blog.csdn.net/jiangdong2007/article/details/49287063