cfile fopen fopen_s win10下開啟檔案失敗
阿新 • • 發佈:2018-12-04
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