Закрыть указатель на файл в Cuda (nvcc)

#cuda #compiler-errors #nvcc

#cuda #ошибки компилятора #nvcc

Вопрос:

В gcc функция close используется для закрытия указателя на файл. Однако мой nvcc-компилятор этого не допустит. Кажется, я не могу найти специфичный для cuda вызов или псевдоним.

Существует ли специальный закрывающий указатель на файл cuda?

Это ошибка, которую я получаю. error: identifier "close" is undefined

Для этого простого кода; FILE* fp = fopen(filename,"r");
if(fp == NULL)
{
return NULL;
}

close(fp);

Комментарии:

1. Попробуйте fclose(). Nvcc не касается кода, он компилируется с помощью вашего хост-компилятора, и ошибка и вопрос не имеют ничего общего с CUDA.

Ответ №1:

Когда NVCC компилирует ваш .cu файл, он делегирует компиляцию частей файла на C / C вашему собственному компилятору C / C (в вашем случае — gcc). Итак, ошибка исходит из gcc.

Вам нужно проверить, почему gcc выдает эту ошибку для кода в этом файле. Скорее всего, вы не включили необходимый заголовочный файл, в котором close() определено, unistd.h . Или попробуйте fclose() , как предложил другой комментатор.