Я новичок в 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) теперь задал следующий вопрос: можно ли спросить разрешения пользователя в начале программы, чтобы он мог запускаться с правами администратора.
Должно быть разрешение. Запустите программу как администратор. – pranav
Да, действительно, сейчас это работает – AXANO
Я бы порекомендовал более безопасный способ: Храните ваши журналы в другом месте. Это не хорошая идея из представления безопасности для запуска ваших программ в качестве администратора, если у вас действительно нет – Emil