Описание функций Си

Dup



     dup

Функция Дублирует дескриптор файла.

Синтаксис #include

int dup(int handle);

Файл, содержащий io.h прототип

Описание Функция dup возвращает дескриптор файла, который по следующим позициям совпадает с оригинальным дескриптором:

- тот же самый открываемый файл или устройство;

- тот же самый адресный указатель файла (то есть изменение одного адресного указателя приводит к изменению другого);

-тот же самый метод доступа (чтение, запись, чте- ние/запись).

Переменная handle получают значения при вызове функций creat,_creat,_open, open, dup, dup2.

Возвращаемое При успешном завершении функция dup возвращает це- значение лое неотрицательное число, обозначающее соответст- вующий дескриптор файла; в противном случае функ- ция dup возвращает значение -1.

При возникновении ошибки глобальная переменная errno получает одно из следующих значений:

EMFILE - Слишком много открытых файлов. EBADF - Неверный номер файла.

Переносимость Функция dup поддерживается в системах UNIX.

Смотрите также ,

Пример:

#include

#include

#include

#include

void flash(FILE *stream);

int main(void) { FILE *fp; char msg[] = "Тестовый пример"; /* создание файла */ fp = fopen("DUMMY.FIL,"w"); if(fp) { /* записать в файл данные */ fwrite(msg,strlen(msg),1,fp); clrscr(); printf(" Для сброса буферов файла на диск нажмите клавишу "); getch(); /* Сброс буферов файда на диск без его закрытия */ flush(fp); printf("Буфера записаны, для завершения нажмите клавишу."); getch(); } else { printf("Ошибка при открытии файла\n"); } return 0; } void flash(FILE *stream) { int duphandle; /* сброс внутреннего буфера TC */ fflash(stream); /* сдублировать дескриптор файла */ duphandle = dup(fileno(stream)); /* закрыть второй дескриптор, для сброса внутренних буферов DOS */ close(duphandle); }



Содержание раздела