mkstemp(3) Library Functions Manual mkstemp(3) NUME mkstemp, mkostemp, mkstemps, mkostemps - creeaza un fiier temporar unic BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int mkstemp(char *template); int mkostemp(char *template, int flags); int mkstemps(char *template, int suffixlen); int mkostemps(char *template, int suffixlen, int flags); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): mkstemp(): _XOPEN_SOURCE >= 500 || /* glibc >= 2.12: */ _POSIX_C_SOURCE >= 200809L || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE mkostemp(): _GNU_SOURCE mkstemps(): /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE mkostemps(): _GNU_SOURCE DESCRIERE Funcia mkstemp() genereaza un nume de fiier temporar unic din ablon, creeaza i deschide fiierul i returneaza un descriptor de fiier deschis pentru fiier. Ultimele ase caractere din ablon trebuie sa fie XXXXXX, iar acestea sunt inlocuite cu un ir de caractere care face ca numele de fiier sa fie unic. Deoarece va fi modificat, ablonul nu trebuie sa fie o constanta de iruri de caractere, ci trebuie declarat ca o matrice de caractere. Fiierul este creat cu permisiunile 0600, adica citire plus scriere numai pentru proprietar. Descriptorul de fiier returnat ofera atat acces de citire, cat i de scriere la fiier. Fiierul este deschis cu fanionul open(2) O_EXCL, garantand ca apelantul este procesul care creeaza fiierul. Funcia mkostemp() este ca mkstemp(), cu diferena ca in flags pot fi specificai urmatorii bii - cu acelai ineles ca pentru open(2) - O_APPEND, O_CLOEXEC i O_SYNC. Reinei ca la crearea fiierului, mkostemp() include valorile O_RDWR, O_CREAT i O_EXCL in argumentul flags dat lui open(2); includerea acestor valori in argumentul flags dat lui mkostemp() nu este necesara i produce erori pe unele sisteme. Funcia mkstemps() este similara funciei mkstemp(), cu excepia faptului ca irul din ablon conine un sufix de caractere suffixlen. Astfel, ablon este de forma prefixXXXXXXsuffix, iar irul XXXXXX este modificat ca pentru mkstemp(). Funcia mkostemps() este pentru mkstemps() la fel cum mkostemp() este pentru mkstemp(). VALOAREA RETURNATA In caz de succes, aceste funcii returneaza descriptorul de fiier al fiierului temporar. In caz de eroare, este returnat -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EEXIST Nu s-a putut crea un nume de fiier temporar unic. Acum coninutul ablonului este nedefinit. EINVAL Pentru mkstemp() i mkostemp(): ultimele ase caractere din ablon nu erau XXXXXX; acum ablon este neschimbat. Pentru mkstemps() i mkostemps(): ablon are mai puin de (6 + suffixlen) caractere sau ultimele 6 caractere dinaintea sufixului din ablon nu au fost XXXXXX. Aceste funcii pot eua, de asemenea, cu oricare dintre erorile descrise pentru open(2). ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |mkstemp(), mkostemp(), mkstemps(), | Sigurana firelor | MT-Safe | |mkostemps() | | | +--------------------------------------+---------------------+---------+ STANDARDE mkstemp() POSIX.1-2001. mkstemps() BSD. mkostemp() mkostemps() GNU. ISTORIC mkstemp() 4.3BSD, POSIX.1-2001. mkstemps() glibc 2.11. BSD, Mac OS X, Solaris, Tru64. mkostemp() glibc 2.7. mkostemps() glibc 2.11. In versiunile glibc 2.06 i anterioare, fiierul este creat cu permisiunile 0666, adica citire i scriere pentru toi utilizatorii. Acest comportament vechi poate reprezenta un risc de securitate, mai ales ca alte versiuni UNIX utilizeaza 0600, iar cineva ar putea trece cu vederea acest detaliu la adaptarea programelor. POSIX.1-2008 adauga o cerina ca fiierul sa fie creat cu modul 0600. Mai general, specificaia POSIX a mkstemp() nu spune nimic despre modurile de fiier, astfel incat aplicaia ar trebui sa se asigure ca masca sa de creare a modului de fiier (consultai umask(2)) este definita corespunzator inainte de a apela mkstemp() (i mkostemp()). CONSULTAI I mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.12 23 iulie 2024 mkstemp(3)