Я использую этот кусок кода C в Linux, чтобы проверить, существует ли файл в том же каталоге, что и файл «.c»:Проверьте, если файл существует в текущем каталоге
int file_exist(char *filename)
{
FILE *fp = fopen(filename, "r");
if (fp) {
return 1;
} else {
return 0;
}
}
, но он всегда возвращает ложь хотя файл существует! Проблема в том, что Linux ищет в другом каталоге? Как это решить?
Он ищет файл в вашем текущем каталоге, а не в директории источника C. Помимо закрытия файла было бы неплохо. –
'fopen()' может возвращать указатель 'NULL', даже если файл существует. – nouney
Не говоря уже о том, что файл может быть там, но у вас нет разрешения на его открытие для чтения. Почему бы вам просто не вызвать «access (filename, F_OK)»? –