Не удалось открыть файл с fopen ()

BCP - это - боль для установки, но это было вокруг с рассвета DBS, и это очень очень быстро.

, Если Вы не вставляете данные в тот порядок, индекс с 3 частями действительно замедлит вещи. Применение его позже действительно замедлит вещи также, но будет на втором шаге.

Первичные ключи в Sql являются всегда довольно медленными, чем больше ключ, тем медленнее.

9
задан unwind 1 July 2016 в 11:48
поделиться

8 ответов

Вместо printf («Ошибка»); вы должны попробовать perror («Ошибка») , который может напечатать фактическую причину сбоя ( например, проблема с разрешением, недопустимый аргумент и т. д.).

21
ответ дан 4 December 2019 в 06:06
поделиться

Как вы запускаете файл? Это из командной строки или из IDE? Каталог, в котором находится ваш исполняемый файл, не обязательно является вашим рабочим каталогом.

Попробуйте использовать полное имя пути в fopen и посмотрите, исправит ли это его. Если да, то проблема описана в описании.

Например:

file = fopen("c:\\MyDirectory\\TestFile1.txt", "r");
file = fopen("/full/path/to/TestFile1.txt", "r");

Или откройте командное окно и перейдите в каталог, где находится ваш исполняемый файл, а затем запустите его вручную.

В качестве альтернативы вы можете вставить простой (для Windows или Linux / UNIX / BSD / и т.д. соответственно):

system ("cd")
system("pwd")

перед fopen , чтобы показать, в каком каталоге вы на самом деле находитесь.

11
ответ дан 4 December 2019 в 06:06
поделиться

Что ж, теперь вы знаете, что есть проблема, следующий шаг - выяснить, в чем именно заключается ошибка, что произойдет, когда вы скомпилируете и запустите это?:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *file;
    file = fopen("TestFile1.txt", "r");
    if (file == NULL) {
      perror("Error");
    } else {
      fclose(file);
    }
}
4
ответ дан 4 December 2019 в 06:06
поделиться

Рабочий каталог вашего исполняемого файла, вероятно, установлен не в каталог, в котором он сохранен. Проверьте настройки IDE.

3
ответ дан 4 December 2019 в 06:06
поделиться

Попробуйте использовать абсолютный путь для имени файла. А если вы используете Windows, используйте getlasterror (), чтобы увидеть фактическое сообщение об ошибке.

1
ответ дан 4 December 2019 в 06:06
поделиться

В дополнение к вышесказанному, вас может заинтересовать отображение вашего текущего каталога:

int MAX_PATH_LENGTH = 80;
char* path[MAX_PATH_LENGTH];
getcwd(path, MAX_PATH_LENGTH);
printf("Current Directory = %s", path);

Это должно работать без проблем на платформе gcc / glibc. (Мне больше всего знаком этот тип платформы). Здесь был опубликован вопрос , в котором говорилось о getcwd и Visual Studio, если вы работаете на платформе типа Windows.

1
ответ дан 4 December 2019 в 06:06
поделиться

Каталог выходной папки должен быть настроен на какой-то другой каталог в среде IDE. Вы можете изменить это или заменить имя файла на весь путь к файлу.

Надеюсь, это поможет.

0
ответ дан 4 December 2019 в 06:06
поделиться

Небольшая проверка ошибок имеет большое значение - вы всегда можете проверить значение errno или вызвать perror () или strerror (), чтобы получить дополнительную информацию о том, почему вызов fopen () не удался.

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

5
ответ дан 4 December 2019 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: