2016-03-03 21 views
0

我在C新手,這是我第programms的一個STATUS_ACCESS_VIOLATION通過在C fprintf中時(授予與彈出框admint權)

我得到一個STATUS_ACCESS_VIOLATION當我選擇C:/在Windows/System32下/log.txt作爲寫入路徑,另一方面,當我選擇在與.exe文件相同的目錄中寫入時,一切正常。一個小小的研究後,我認爲它會是一些與這條線

FILE *fp ; 

當我在

fp = fopen("C:/Windows/System32/log.txt", "a+"); 

CODE


#include <stdio.h> 
#include <string.h> 
#include <unistd.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <time.h> 

void main()  
{ 
    FILE *fp ; 
    clock_t tic = clock(); 

    fp = fopen("C:/Windows/System32/log.txt", "a+");          
    fprintf(fp, "TEXT \n"); 
    fclose(fp); 

    clock_t toc = clock(); 
    double time = (double)(toc - tic)/CLOCKS_PER_SEC; 
    char text[255]; 
    sprintf(text, "The program did %f s to complete", time); 
    MessageBox(0, text, "Duration", MB_OK); 
} 

調試代碼的調試器崩潰

從pranav提示(運行.exe作爲dministrator)它的工作現在是下一個問題:是否有可能在程序開始時詢問用戶的權限,以便它可以使用管理員權限運行

+1

它必須是權限issue.Try以管理員身份運行程序。 – pranav

+0

是的,它確實現在工作 – AXANO

+0

我會推薦一種更安全的方式:將日誌存儲在其他地方。從安全角度來看,以管理員身份運行程序並不是一個好主意,除非您真的必須 – Emil

回答

0

僅允許將文件寫入C:/ Windows/System32 /管理員用戶。

給予程序的管理權限或者也可以通過以管理員身份運行程序來運行程序。

+0

如何提示用戶彈出框,以便他可以選擇在運行程序時授予管理員權限? – AXANO

+0

您可以搜索授予管理員權限,以便在windows中編程。我建議使用Linux發行版學習C. – pranav

+0

如果可以滿足,您應該upvote或批准答案 – pranav