std:: tmpnam
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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) |
|
|
(C++17)
|
retourne un répertoire approprié pour les fichiers temporaires
(fonction) |
|
Documentation C
pour
tmpnam
|
|