tempfile(1) w bezpieczny sposób tworzy plik tymczasowy

SKŁADNIA

tempfile [-d KATALOG] [-p ŁAŃCUCH] [-s ŁAŃCUCH] [-m TRYB] [-n PLIK] [--directory=KATALOG] [--prefix=ŁAŃCUCH] [--suffix=ŁAŃCUCH] [--mode=TRYB] [--name=PLIK] [--help] [--version]

OPIS

tempfile w bezpieczny sposób tworzy plik tymczasowy. Do wyboru nazwy korzysta z tempnam(3) i otwiera plik, używając znaczników O_RDWR | O_CREAT | O_EXCL. Nazwa pliku jest wypisywana na standardowym wyjściu. Szczegóły wyboru katalogu można znaleźć w podręczniku tempnam(3).

Katalog, w którym zostanie utworzony plik tymczasowy, może zostać wyszukany w następujący sposób (ale prosimy przeczytać tempnam(3) po dokładniejszy opis):

a)
Jeśli istnieje zmienna środowiskowa TMPDIR i zawiera nazwę odpowiedniego katalogu, to jest używana.
b)
W przeciwnym wypadku, jeśli podano argument --directory i jest on właściwy, to jest używany.
c)
W przeciwnym wypadku używane jest P_tmpdir (zdefiniowane w <stdio.h>), jeśli jest to właściwe.
d)
W końcu może zostać użyty katalog zdefiniowany podczas implementacji (/tmp).

OPCJE

-d, --directory KATALOG
Umieszcza utworzony plik w zadanym KATALOGU.
-m, --mode TRYB
Otwiera plik z zadanym TRYBEM, zamiast z domyślnym 0600.
-n, --name PLIK
Używa PLIKU jako nazwy pliku zamiast korzystać z tempnam(3). Jeśli podano tę opcję, to -d, -p i -s są ignorowane.
-p, --prefix ŁAŃCUCH
Do wygenerowania nazwy wykorzystuje do pięciu liter z ŁAŃCUCHA.
-s, --suffix ŁAŃCUCH
Tworzy plik z ŁAŃCUCHEM jako przyrostkiem nazwy.
--help
Wypisuje na standardowym wyjściu komunikat o sposobie użycia i pomyślnie kończy pracę.
--version
Wypisuje na standardowym wyjściu informację o wersji i pomyślnie kończy pracę.

ZWRACANE WARTOŚCI

Zwrócony kod 0 oznacza, że pomyślnie stworzono plik tymczasowy. Każdy inny kod wskazuje błąd.

BŁĘDY

Podczas tworzenia plików na partycji NFS nie jest gwarantowane utworzenie pliku na wyłączność. tempfile nie potrafi utworzyć tymczasowych katalogów. tempfile nie jest zalecany; zamiast niego należy używać mktemp(1).

PRZYKŁAD

#!/bin/sh
#[...]
t=$(tempfile) || exit
trap "rm -f -- '$t'" EXIT
#[...]
rm -f -- "$t"
trap - EXIT
exit

TŁUMACZENIE

Niniejsze tłumaczenie jest częścią pakietu debianutils. Strony podręcznika zawarte w pakiecie przetłumaczyli: Przemek Borys (PTM) <[email protected]>, Wojtek Kotwica (PTM) <[email protected]>, Michał Kułach <[email protected]> oraz Robert Luberda <[email protected]>.