Какой тип я должен создать функцию, которая возвращает состояние выхода в C

#c #function

Вопрос:

Я пишу функцию, которая проверяет, можно ли открыть файл или нет. Однако я не знаю, является ли bool правильным типом.

Любая помощь будет оценена.

Спасибо!

 bool checkFileOpen (ifstream fin)
{
  if (!fin)
  {
    cout << "Unable to open file";
    return EXIT_FAILURE;
  }
}
 

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

1. Эта функция проверяет, открыт ли файл, а не «может быть открыт «.

2. Если EXIT_FAILURE не равно нулю, это будет возвращено как true . Почему бы и нет return false ?

3. Эта функция не должна возвращать состояние выхода. Он должен возвращать true или false , и пусть вызывающий решает, как справиться с ошибкой.

Ответ №1:

Они предназначены для возврата main или передачи exit , поэтому правильный тип int .

Ответ №2:

Согласно https://en.cppreference.com/w/c/program/EXIT_status , эти макросы являются /*implementation defined*/

Вы можете либо найти его для своей платформы, либо перевести на выбранный вами тип.

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

1. Они предназначены для возврата из main возвращаемого типа int