Namespaces
Variants

std:: tmpnam

From cppreference.net
< cpp ‎ | io ‎ | c
Défini dans l'en-tête <cstdio>
char * tmpnam ( char * filename ) ;

Crée un nom de fichier unique qui ne correspond pas à un fichier existant actuellement, et le stocke dans la chaîne de caractères pointée par filename . La fonction est capable de générer jusqu'à TMP_MAX noms de fichiers uniques, mais certains ou tous peuvent déjà être utilisés, et donc ne pas convenir comme valeurs de retour.

std::tmpnam modifie un état statique et n'est pas requis d'être thread-safe.

Table des matières

Paramètres

filename - pointeur vers le tableau de caractères capable de contenir au moins L_tmpnam octets, à utiliser comme tampon de résultat. Si un pointeur nul est passé, un pointeur vers un tampon statique interne est retourné

Valeur de retour

filename si filename n'était pas un pointeur nul. Sinon, un pointeur vers un tampon statique interne est retourné. Si aucun nom de fichier approprié ne peut être généré, un pointeur nul est retourné.

Notes

Bien que les noms générés par std::tmpnam soient difficiles à deviner, il est possible qu'un fichier portant ce nom soit créé par un autre processus entre le moment où std::tmpnam retourne un résultat et le moment où ce programme tente d'utiliser le nom retourné pour créer un fichier. La fonction standard std::tmpfile et la fonction POSIX mkstemp ne présentent pas ce problème (créer un répertoire unique en utilisant uniquement la bibliothèque standard C nécessite encore l'utilisation de tmpnam ).

Les systèmes POSIX définissent également la fonction de nom similaire tempnam , qui offre le choix d'un répertoire (qui utilise par défaut la macro optionnellement définie P_tmpdir ).

Exemple

#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';
}

Sortie possible :

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

Voir aussi

crée et ouvre un fichier temporaire auto-supprimé
(fonction)
retourne un répertoire approprié pour les fichiers temporaires
(fonction)
Documentation C pour tmpnam