std:: fclose
|
Определено в заголовочном файле
<cstdio>
|
||
|
int
fclose
(
std::
FILE
*
stream
)
;
|
||
Закрывает заданный файловый поток и записывает все невыведенные данные из stream 's buffer в связанное устройство вывода. Все непрочитанные буферизованные данные отбрасываются.
Независимо от того, завершается ли операция успешно, поток больше не ассоциируется с файлом, а буфер, выделенный с помощью std::setbuf или std::setvbuf , если таковой имеется, также отсоединяется и освобождается, если использовалась автоматическая аллокация.
|
Если какие-либо данные записываются в выходное устройство, возврат из
|
(since C++26) |
Поведение не определено, если значение указателя
stream
используется после того, как
std::fclose
возвращает управление.
Содержание |
Параметры
| stream | - | файловый поток для закрытия |
Возвращаемое значение
0 при успешном выполнении, EOF в противном случае.
Пример
#include <cstdio> #include <cstdlib> int main() { int is_ok = EXIT_FAILURE; FILE* fp = std::fopen("/tmp/test.txt", "w+"); if (!fp) { std::perror("File opening failed"); return is_ok; } int c; // Примечание: int, а не char, требуется для обработки EOF while ((c = std::fgetc(fp)) != EOF) // Стандартный цикл чтения файла ввода-вывода C std::putchar(c); if (std::ferror(fp)) std::puts("I/O error when reading"); else if (std::feof(fp)) { std::puts("End of file reached successfully"); is_ok = EXIT_SUCCESS; } std::fclose(fp); return is_ok; }
Вывод:
End of file reached successfully
Смотрите также
|
открывает файл
(функция) |
|
|
открывает существующий поток с другим именем
(функция) |
|
|
сбрасывает буфер области записи и закрывает связанный файл
(публичная функция-член
std::basic_filebuf<CharT,Traits>
)
|
|
|
Документация C
для
fclose
|
|