Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Dup2

CuBook05

Функция

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

#include<io.h>
int dup2(int oldhandle, int newhandle);
 
Прототип

io.h
 
Описание

Функция dup2 возвращают дескриптор файла, который по следующим позициям совпадает с оригинальным дескриптором:
- тот же самый открываемый файл или устройство.
- тот же самый адресный указатель файла (то есть изменение одного адресного указателя приводит к изменению другого).
- тот же самый метод доступа (чтение, запись, чтение/запись).
Функция dup2 создает новый дескриптор со значением newhandle. Если файл связанный с дескриптором newhandle открыт, то при вызове dup2 он закрывается. Переменные newhandle и oldhandle - это дескрипторы файлов, и получают значения при вызове функций creat, _creat, _open, open, dup, dup2.
 
Возвращаемое значение

При успешном завершении функция dup2 возвращает 0, в противном случае функция dup2 возвращает значение -1. При возникновении ошибки глобальная переменная errno получает одно из следующих значений:
EMFILE - слишком много открытых файлов.
EBADF - неверный номер файла.
 
Переносимость

Поддерживается в системах UNIX, кроме System III.
 
Пример

#include<sys\stat.h>
#include<string.h>
#include<fcntl.h>
#include<io.h>
#include<stdio.h>
#define STDOUT 1

int main(void)
{
int fptr,oldstdout;
char msg[] = "Тестовый пример";
fptr = open("DUMMY.FIL",O_CREAT|O_RDWR,S_IREAD|S_IWRITE);
if(fptr)
{
oldstdout = dup(STDOUT);
dup2(fptr,STDOUT);
close(fptr);
write(STDOUT,msg,strlen(msg));
dup2(oldstdout,STDOUT);
close(oldstdout);
}
else
{
printf("Ошибка при открытии файла. \n");
}
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить