Программирование на C и C++

Онлайн справочник программиста на C и C++

close, _rtl_close

int close(int fd)

int _rtl_close(int fd)

Прототип: 
Описание: 

Функция close() относится к UNIX-подобной системе и не определяется стандартом ANSI С. При вызове функции close() с действительным дескриптором файла она закрывает связанный с ним файл, осуществив предварительно очистку буфера записи, если это необходимо. (Дескрипто­ры файлов создаются при успешном обращении к open() или creat() и не относятся к потокам или указателям на файлы.)

В случае успеха close() возвращает 0, в противном случае —1. Причины того, что нельзя за­крыть файл, могут быть разными, однако самая распространенная заключается в том, что был преждевременно извлечен носитель информации. Например, ошибка возникнет, если до закры­тия файла извлечь диск.

Функция _rtl_close() работает точно так же, как close().

Пример: 
Данная программа открывает и закрывает файл, используя UNIX-подобную файловую систему:
#include <stdio.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <io.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int fd;
if ((fd=open(argv[1], O_RDONLY))==-1) {
printf("Cannot open file.");
exit (1);
}
printf("File is existent.\n");
if (close(fd))
printf("Error in closing file.\n");
return 0;
}