.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\" and Copyright (C) 2008, Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified Sat Jul 24 18:48:48 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified 980310, aeb
.\" Modified 990328, aeb
.\" 2008-06-19, mtk, Added mkostemp(); various other changes
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH mkstemp 3 "2 maja 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
mkstemp, mkostemp, mkstemps, mkostemps \- tworzy unikalny plik tymczasowy
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <stdlib.h>\fP
.P
\fBint mkstemp(char *\fP\fItemplate\fP\fB);\fP
\fBint mkostemp(char *\fP\fItemplate\fP\fB, int \fP\fIflags\fP\fB);\fP
\fBint mkstemps(char *\fP\fItemplate\fP\fB, int \fP\fIsuffixlen\fP\fB);\fP
\fBint mkostemps(char *\fP\fItemplate\fP\fB, int \fP\fIsuffixlen\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.P
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.P
\fBmkstemp\fP():
.nf
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    _XOPEN_SOURCE >= 500
        || /* glibc >= 2.12: */ _POSIX_C_SOURCE >= 200809L
        || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
.fi
.P
\fBmkostemp\fP():
.nf
    _GNU_SOURCE
.fi
.P
\fBmkstemps\fP():
.nf
    /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
.fi
.P
\fBmkostemps\fP():
.nf
    _GNU_SOURCE
.fi
.SH OPIS
Funkcja \fBmkstemp\fP() generuje unikalną nazwę pliku tymczasowego z
\fItemplate\fP, tworzy i otwiera plik oraz zwraca deskryptor otwartego pliku.
.P
Ostatnimi sześcioma znakami w \fItemplate\fP musi być \[Bq]XXXXXX\[rq]; znaki
te są zastępowane łańcuchem, który czyni nazwę pliku unikalną. Jako że
zostanie on zmodyfikowany, \fItemplate\fP nie może być stałą łańcuchową, lecz
należy go zadeklarować jako tablicę znaków.
.P
Plik jest tworzony z uprawnieniami 0600 tj. odczyt i zapis tylko dla
właściciela. Zwracany deskryptor pliku zapewnia dostęp do odczytu i do
zapisu do pliku. Plik jest otwierany ze znacznikiem \fBO_EXCL\fP \fBopen\fP(2), co
gwarantuje, że wywołujący jest procesem tworzącym plik.
.P
.\" Reportedly, FreeBSD
Funkcja \fBmkostemp\fP() działa jak \fBmkstemp\fP(), z tą różnicą, że następujące
bity \[em] o znaczeniu takim samym jak w \fBopen\fP(2) \[em] można przekazać we
\fIflags\fP: \fBO_APPEND\fP, \fBO_CLOEXEC\fP i \fBO_SYNC\fP. Proszę zauważyć, że tworząc
plik, \fBmkostemp\fP() zawiera wartości \fBO_RDWR\fP, \fBO_CREAT\fP i \fBO_EXCL\fP w
argumencie \fIflags\fP przekazywanym do \fBopen\fP(2); dołączanie tych wartości w
argumencie \fIflags\fP przekazywanym \fBmkostemp\fP() jest niepotrzebne, a na
niektórych systemach zwraca błąd.
.P
Funkcja \fBmkstemps\fP() działa jak \fBmkstemp\fP() z tą różnicą, że łańcuch w
\fItemplate\fP zawiera przyrostek o długości \fIsuffixlen\fP znaków. Z tego
względu \fItemplate\fP ma postać \fIprzedrostekXXXXXXprzyrostek\fP, a łańcuch
XXXXXX jest modyfikowany przez \fBmkstemp\fP().
.P
Funkcja \fBmkostemps\fP() jest w stosunku do \fBmkstemps\fP() tym, czym
\fBmkostemp\fP() jest dla funkcji \fBmkstemp\fP().
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu funkcje te zwracają deskryptor pliku dla pliku
tymczasowego. Po błędzie zwracane jest \-1 i ustawiane \fIerrno\fP wskazując
błąd.
.SH BŁĘDY
.TP 
\fBEEXIST\fP
Nie można utworzyć unikalnej nazwy pliku tymczasowego. Zawartość \fItemplate\fP
jest teraz niezdefiniowana.
.TP 
\fBEINVAL\fP
Dla \fBmkstemp\fP() i \fBmkostemp\fP(): Ostatnimi sześcioma znakami \fItemplate\fP
nie były XXXXXX; \fItemplate\fP nie uległo zmianie.
.IP
Dla \fBmkstemps\fP() i \fBmkostemps\fP(): \fItemplate\fP jest krótsze niż \fI(6 + suffixlen)\fP znaków albo ostatnimi 6 znakami w \fItemplate\fP przed przyrostkiem
nie było XXXXXX.
.P
Funkcje te mogą również zawieść z dowolnym błędem opisanym dla \fBopen\fP(2).
.SH ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku
\fBattributes\fP(7).
.TS
allbox;
lbx lb lb
l l l.
Interfejs	Atrybut	Wartość
T{
.na
.nh
\fBmkstemp\fP(),
\fBmkostemp\fP(),
\fBmkstemps\fP(),
\fBmkostemps\fP()
T}	Bezpieczeństwo wątkowe	MT\-bezpieczne
.TE
.SH STANDARDY
.TP 
\fBmkstemp\fP()
POSIX.1\-2001.
.TP 
\fBmkstemps\fP()
.\" mkstemps() appears to be at least on the BSDs, Mac OS X, Solaris,
.\" and Tru64.
BSD.
.TP 
\fBmkostemp\fP()
.TQ
\fBmkostemps\fP()
GNU.
.SH HISTORIA
.TP 
\fBmkstemp\fP()
4.3BSD, POSIX.1\-2001.
.TP 
\fBmkstemps\fP()
glibc 2.11.  BSD, Mac OS X, Solaris, Tru64.
.TP 
\fBmkostemp\fP()
glibc 2.7.
.TP 
\fBmkostemps\fP()
glibc 2.11.
.P
W wersjach glibc 2.06 i wcześniejszych, tworzony plik ma uprawnienia 0666
tj. odczyt i zapis dla wszystkich. To stare zachowanie może stanowić
zagrożenie bezpieczeństwa, szczególnie ze względu, że inne odmiany Uniksa
używają 0600 i ktoś mógłby pominąć ten detal przy portowaniu
programów. POSIX.1\-2008 dodaje wymóg, aby ten plik był tworzony z trybem
0600.
.P
.\"
.\" The prototype for
.\" .BR mkstemp ()
.\" is in
.\" .I <unistd.h>
.\" for libc4, libc5, glibc1; glibc2 follows POSIX.1 and has the prototype in
.\" .IR <stdlib.h> .
Ogólniej, norma POSIX wobec \fBmkstemp\fP() nie mówi nic o trybach pliku, zatem
aplikacje powinny się upewnić, że ich maska trybu tworzonych plików
(zob. \fBumask\fP(2)) jest właściwie ustawiona przed wywołaniem \fBmkstemp\fP() (i
\fBmkostemp\fP()).
.SH "ZOBACZ TAKŻE"
\fBmkdtemp\fP(3), \fBmktemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
