Ошибка проверки при поиске длины файла с использованием статистики - PullRequest
2 голосов
/ 03 июля 2011

Этот вопрос относится к Как узнать размер файла в C?

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

Какой тип проверки ошибок нам нужен здесь?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 03 июля 2011

Как и многие функции API Unix / POSIX, stat(2) возвращает отрицательное целое число при ошибке. К сожалению, это целое число всегда -1 для stat. Следовательно, вам нужно проверить глобальную переменную errno (определенную в <errno.h>), чтобы увидеть точную ошибку.

Бен перечислил некоторые ошибки, с которыми вы можете столкнуться; коды ошибок для этих и других ошибок перечислены в справочной странице stat .

2 голосов
/ 03 июля 2011
  • Возможно, файл не существует
  • Возможно, у вас нет прав доступа к его метаданным
  • Возможно, точка подключения к сети недоступна или возникла какая-то другая ошибка чтения
  • Это может быть специальный файл (например, узел устройства или fifo), который не имеет размера
...