2016-03-03 6 views
0

Я новичок в C, и это одна из моих первых программSTATUS_ACCESS_VIOLATION при использовании fprintf в C (предоставление admint права с всплывающим окном)

Я получаю STATUS_ACCESS_VIOLATION когда я выбираю C:/Windows/System32 /log.txt как путь записи, с другой стороны, все работает отлично, когда я выбираю запись в том же каталоге, что и файл .exe. После небольшого исследования я предполагаю, что это должно быть что-то с этой линией

FILE *fp ; 

Когда я отладки кода сбои отладчика в

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

КОД


#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

Должно быть разрешение. Запустите программу как администратор. – pranav

+0

Да, действительно, сейчас это работает – AXANO

+0

Я бы порекомендовал более безопасный способ: Храните ваши журналы в другом месте. Это не хорошая идея из представления безопасности для запуска ваших программ в качестве администратора, если у вас действительно нет – Emil

ответ

0

Запись файлов на C:/Windows/System32/разрешена только для пользователя-администратора.

Дайте административные разрешения программе или вы также можете запустить программу, запустив программу в качестве администратора.

+0

, как я могу вызвать всплывающее окно для пользователя, чтобы он мог выбрать права администратора в момент запуска программы? – AXANO

+0

Вы можете искать предоставление разрешений администратора для программ в windows.I предлагаю использовать дистрибутив Linux для обучения C. – pranav

+0

Вы должны подтвердить или утвердить ответ, если он является выполнимым – pranav

 Смежные вопросы

  • Нет связанных вопросов^_^