1. 程式人生 > >cfile fopen fopen_s win10下開啟檔案失敗

cfile fopen fopen_s win10下開啟檔案失敗

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 許可權:

 

上圖是UAC 的預設級別:asInvoker (/level='asInvoker')

然後把該許可權提升為:highestAvailable (/level='highestAvailable')

其他的設定不用動,這樣在win10下就可以使用fopen開啟成功了。

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