fopen не может открыть файл windows hosts - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть FILE* target здесь, который должен открыть файл хостов Windows и записать в него:

FILE* target;
target = fopen("C:\\windows\\sysnative\\drivers\\etc\\hosts", "r+");
if (target != NULL) {
    printf("true\n");
} else {
    printf("false\n");
}

Однако при открытии файла хостов Windows он не открывается.В частности, fopen() возвращает NULL, а false выводится на экран.Я проверил каталог.Это хорошо.Удалив лишние \ с, я смог открыть его с помощью Блокнота.Однако fopen() не может открыть этот файл.Он может открыть любой файл в текущем рабочем каталоге или во вложенном каталоге внутри него, но не может открыть файл hosts.Возможно, у меня есть проблема с моим путем?Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Всякий раз, когда в Windows происходит сбой файловой операции, вы можете позвонить GetLastError() (errno` в системах Posix), чтобы узнать, почему происходит сбой операции.Это вернет код ошибки, который вы можете найти, чтобы узнать, почему это не удалось

0 голосов
/ 30 декабря 2018

вам нужен admin priv, чтобы открыть файл hosts на windows, попробуйте запустить ваш скрипт от имени администратора.

...