Namespaces
Variants

std:: tmpnam

From cppreference.net
< cpp ‎ | io ‎ | c
Definido en el encabezado <cstdio>
char * tmpnam ( char * filename ) ;

Crea un nombre de archivo único que no nombre un archivo existente actualmente, y lo almacena en la cadena de caracteres apuntada por filename . La función es capaz de generar hasta TMP_MAX nombres de archivo únicos, pero algunos o todos pueden estar ya en uso, y por lo tanto no ser valores de retorno adecuados.

std::tmpnam modifica el estado estático y no se requiere que sea seguro para hilos.

Contenidos

Parámetros

filename - puntero al arreglo de caracteres capaz de contener al menos L_tmpnam bytes, para ser usado como búfer de resultado. Si se pasa un puntero nulo, se devuelve un puntero a un búfer estático interno

Valor de retorno

filename si filename no era un puntero nulo. De lo contrario, se devuelve un puntero a un búfer interno estático. Si no se puede generar un nombre de archivo adecuado, se devuelve un puntero nulo.

Notas

Aunque los nombres generados por std::tmpnam son difíciles de adivinar, es posible que un archivo con ese nombre sea creado por otro proceso entre el momento en que std::tmpnam retorna y el momento en que este programa intenta usar el nombre retornado para crear un archivo. La función estándar std::tmpfile y la función POSIX mkstemp no tienen este problema (crear un directorio único usando únicamente la biblioteca estándar de C todavía requiere el uso de tmpnam ).

Los sistemas POSIX definen adicionalmente la función de nombre similar tempnam , que ofrece la opción de un directorio (que por defecto es el macro opcionalmente definido P_tmpdir ).

Ejemplo

#include <cstdio>
#include <iostream>
#include <string>
int main()
{
    std::string name1 = std::tmpnam(nullptr);
    std::cout << "temporary file name: " << name1 << '\n';
    char name2[L_tmpnam];
    if (std::tmpnam(name2))
        std::cout << "temporary file name: " << name2 << '\n';
}

Salida posible:

temporary file name: /tmp/fileDjwifs
temporary file name: /tmp/fileEv2bfW

Véase también

crea y abre un archivo temporal que se elimina automáticamente
(función)
devuelve un directorio adecuado para archivos temporales
(función)