Provided by: manpages-pl-dev_0.5-1_all bug

NAZWA

       dup, dup2 - powielenie deskryptora pliku

SKŁADNIA

       #include <unistd.h>

       int dup(int oldfd);
       int dup2(int oldfd, int newfd);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       dup i dup2 tworzą kopię deskryptora pliku oldfd.

       Po pomyślnym zakończeniu dup lub dup2, stary i nowy deskryptor mogą być używane zamiennie.
       Współdzielą one blokady, pozycję pliku i  znaczniki;  na  przykład,  jeśli  pozycja  pliku
       zmieni  się  w  wyniku  użyciu  lseek  dla jednym z deskryptorów, zmieni się ona także dla
       drugiego.

       Te dwa deskryptory nie współdzielą jednak znacznika close-on-exec.

       dup używa dla nowego deskryptora nieużywanego deskryptora o najniższym numerze.

       dup2 powoduje, że newfd staje się kopią oldfd, zamykając najpierw  newfd,  jeśli  jest  to
       potrzebne.

WARTOŚĆ ZWRACANA

       dup  i  dup2  zwracają  nowy  deskryptor,  lub  -1 po błędzie (w tym przypadku odpowiednio
       ustawiane jest errno).

BŁĘDY

       EBADF  oldfd nie jest deskryptorem otwartego pliku, lub newfd  jest  poza  dozwolonym  dla
              deskryptorów plików zakresem.

       EMFILE Proces  już  osiągnął  maksymalną  liczbę otwartych deskryptorów plików, a próbował
              otworzyć nowy.

OSTRZEŻENIE

       Błąd zwracany przez dup2 jest inny niż zwracany przez fcntl(..., F_DUPFD, ...), gdy  newfd
       jest poza zakresem. W niektórych systemach dup2 zwraca też czasem EINVAL jako F_DUPFD.

USTERKI

       Jeśli newfd był otwarty, wszelkie błędy, które mogłyby zostać zgłoszone w chwili wykonania
       close()  zostaną  utracone.  Ostrożny  programista  nie  użyje  dup2  bez   wcześniejszego
       zamknięcia newfd.

ZGODNE Z

       SVr4,  SVID,  POSIX,  X/OPEN,  BSD  4.3. SVr4 dokumentuje dodatkowe błędy EINTR i ENOLINK.
       POSIX.1 dodaje EINTR.

ZOBACZ TAKŻE

       fcntl(2), open(2), close(2)

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 dup

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.