Provided by: manpages-pl-dev_4.28.0-2_all bug

NAZWA

       tmpnam, tmpnam_r - tworzy nazwę dla pliku tymczasowego

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <stdio.h>

       [[przestarzałe]] char *tmpnam(char *s);
       [[przestarzałe]] char *tmpnam_r(char *s);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       tmpnam_r()
           Od glibc 2.19:
               _DEFAULT_SOURCE
           Do glibc 2.19 włącznie:
               _BSD_SOURCE || _SVID_SOURCE

OPIS

       Uwaga: proszę unikać korzystania z tych funkcji, należy używać w zamian mkstemp(3) lub tmpfile(3).

       Funkcja  tmpnam()  zwraca  wskaźnik  do łańcucha będącego prawidłową nazwą pliku i takiego, że plik o tej
       samej nazwie nie istnieje w jakimś punkcie czasu, co powoduje że naiwni  programiści  mogą  uznać  go  za
       odpowiednią  nazwę  dla  pliku  tymczasowego.  Jeśli  argumentem  s jest NULL, to nazwa jest generowana w
       wewnętrznym statycznym buforze i może być nadpisana przez następne wywołanie do  tmpnam().  Jeśli  s  nie
       wynosi  NULL,  nazwa jest kopiowana do macierzy znaków (długości co najmniej L_tmpnam), na którą wskazuje
       s, a wartość s jest zwracana w przypadku powodzenia.

       Tworzona nazwa ścieżki ma przedrostek katalogu P_tmpdir (zarówno L_tmpnam jak i P_tmpdir są  zdefiniowane
       w <stdio.h>, podobnie jak wspomniane niżej TMP_MAX).

       Funkcja tmpnam_r() przeprowadza to samo zadanie co tmpnam(), lecz zwraca NULL (aby wskazać błąd), jeśli s
       wynosi NULL.

WARTOŚĆ ZWRACANA

       Funkcje  zwracają  wskaźnik  do  unikalnej nazwy pliku tymczasowego lub NULL, jeśli nie można wygenerować
       unikalnej nazwy.

BŁĘDY

       Nie zdefiniowano błędów.

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
       ┌────────────────────────────────────────────┬────────────────────────┬─────────────────────────────────┐
       │ InterfejsAtrybutWartość                         │
       ├────────────────────────────────────────────┼────────────────────────┼─────────────────────────────────┤
       │ tmpnam()                                   │ Bezpieczeństwo wątkowe │ MT-niebezpieczne race:tmpnam/!s │
       ├────────────────────────────────────────────┼────────────────────────┼─────────────────────────────────┤
       │ tmpnam_r()                                 │ Bezpieczeństwo wątkowe │ MT-bezpieczne                   │
       └────────────────────────────────────────────┴────────────────────────┴─────────────────────────────────┘

STANDARDY

       tmpnam()
              C11, POSIX.1-2008.

       tmpnam_r()
              Brak.

HISTORIA

       tmpnam()
              SVr4, 4.3BSD, C89, POSIX.1-2001. Przestarzałe w POSIX.1-2008.

       tmpnam_r()
              Solaris.

UWAGI

       Funkcja tmpnam() tworzy odmienny łańcuch za każdym razem, gdy jest wywoływana, aż do TMP_MAX razy.  Jeśli
       jest wywołana więcej niż TMP_MAX razy, zachowanie zależy od implementacji.

       Choć  funkcje  te tworzą nazwy, które są trudne do odgadnięcia, mimo to możliwe jest, aby pomiędzy czasem
       gdy nazwa ścieżki zostanie zwrócona, a czasem gdy program ją otworzy, inny program utworzył tę samą nazwę
       ścieżki za pomocą open(2)  lub  utworzył  ją  jako  dowiązanie  symboliczne.  Może  to  skutkować  lukami
       bezpieczeństwa.   Aby uniknąć takiej ewentualności, proszę stosować znacznik O_EXCL open(2), aby otworzyć
       nazwę ścieżki. Jeszcze lepszym rozwiązaniem jest korzystanie z mkstemp(3) lub tmpfile(3).

       Przenośne aplikacje,  korzystające  z  wątków,  nie  mogą  wywołać  tmpnam()  z  argumentem  NULL,  jeśli
       zdefiniowano _POSIX_THREADS lub _POSIX_THREAD_SAFE_FUNCTIONS.

USTERKI

       Nigdy nie należy korzystać z tych funkcji. W zamian należy używać mkstemp(3) lub tmpfile(3).

ZOBACZ TAKŻE

       mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                        tmpnam(3)