dup

DUP(2)                  PodrÄcznik programisty Linuksa                  DUP(2)



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/.



Linux 1.1.46                      1994-08-21                            DUP(2)