fclose
Определено в заголовочном файле <stdio.h> | ||
|---|---|---|
int fclose( FILE* stream ); |
Закрывает указанный файловый поток. Все записанные в буфер, но не сохранённые данные передаются операционной системе. Все непрочитанные данные из буфера отбрасываются.
Независимо от того, завершилась ли операция успешно, поток больше не связан с файлом, а буфер, выделенный с помощью setbuf или setvbuf, если он есть, также отсоединяется и освобождается, если использовалось автоматическое выделение памяти.
Поведение не определено, если значение указателя stream используется после возврата fclose.
Параметры
| stream | - | файловый поток, который необходимо закрыть |
Возвращаемое значение
0 в случае успеха, в противном случае EOF
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
int is_ok = EXIT_FAILURE;
FILE* fp = fopen(fname, "w+");
if (!fp)
{
perror("File opening failed");
return is_ok;
}
fputs("Hello, world!\n", fp);
rewind(fp);
int c; // note: int, not char, required to handle EOF
while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
putchar(c);
if (ferror(fp))
puts("I/O error when reading");
else if (feof(fp))
{
puts("End of file is reached successfully");
is_ok = EXIT_SUCCESS;
}
fclose(fp);
remove(fname);
return is_ok;
}
Возможный вывод:
Hello, world! End of file is reached successfully
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.21.5.1 Функция fclose (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.21.5.1 Функция fclose (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.21.5.1 Функция fclose (стр.: 304)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.19.5.1 Функция fclose (стр.: 270)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.9.5.1 Функция fclose
См. также
|
(C11) | открывает файл (функция) |
|
(C11) | открывает существующий поток под другим именем (функция) |
Документация C++ для fclose |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/io/fclose