table of contents
- bookworm-backports 1:4.27.0-1~bpo12+1
- testing 1:4.27.0-1
- unstable 1:4.27.0-1
mktemp(3) | Library Functions Manual | mktemp(3) |
NAZWA¶
mktemp - tworzy unikalną nazwę pliku tymczasowego
BIBLIOTEKA¶
Standardowa biblioteka C (libc, -lc)
SKŁADNIA¶
#include <stdlib.h>
char *mktemp(char *template);
mktemp():
Od glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
Przed glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
OPIS¶
Proszę nigdy nie używać tej funkcji; zob. USTERKI.
Funkcja mktemp() tworzy unikalną nazwę pliku tymczasowego na podstawie template. Ostatnimi sześcioma znakami w template musi być XXXXXX; znaki te są zastępowane łańcuchem, który czyni nazwę pliku unikalną. Jako że zostanie on zmodyfikowany, template nie może być stałą łańcuchową, lecz należy go zadeklarować jako tablicę znaków.
WARTOŚĆ ZWRACANA¶
Funkcja mktemp() zawsze zwraca template. Jeśli utworzono unikalną nazwę, ostatnie sześć bajtów template będą zmodyfikowane w ten sposób, że wynikowa nazwa jest unikatowa (tj. nie występowała do tej pory). Jeśli nie można było utworzyć unikalnej nazwy, template będzie łańcuchem pustym i ustawiane jest errno, wskazując błąd.
BŁĘDY¶
- EINVAL
- Ostatnimi sześcioma znakami template nie były XXXXXX.
ATRYBUTY¶
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość |
mktemp() | Bezpieczeństwo wątkowe | MT-bezpieczne |
STANDARDY¶
4.3BSD, POSIX.1-2001. POSIX.1-2008 usuwa opis mktemp().
USTERKI¶
Proszę nigdy nie używać mktemp(). Niektóre implementacje stosują zasady z 4.3BSD, zastępując XXXXXX identyfikatorem bieżącego procesu i pojedynczą literą, tak więc zwrócone może być co najwyżej 26 różnych nazw. Jako że z jednej strony nazwy te są łatwe do odgadnięcia, a z drugiej strony występuje wyścig pomiędzy sprawdzeniem, czy nazwa istnieje i otwarciem pliku, każde zastosowanie mktemp() stanowi zagrożenie bezpieczeństwa. Wyścigu można uniknąć, używając mkstemp(3) i mkdtemp(3).
ZOBACZ TAKŻE¶
mktemp(1), mkdtemp(3), mkstemp(3), tempnam(3), tmpfile(3), tmpnam(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.
5 lutego 2023 r. | Linux man-pages 6.03 |