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;
}
#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;
}