western AJMM | Poireau a écrit :
Si tu cherche la facilite il existe des fonctions pour creer des fichiers avec des nom aleatoires, des fichiers temporaires :
Creates a temporary file.
FILE *tmpfile( void );
Return Value
If successful, tmpfile returns a stream pointer. Otherwise, it returns a NULL pointer.
Il y a aussi : _tempnam, _wtempnam, tmpnam, _wtmpnam...
Mais si tu veux le faire toi meme je dirai pour le code :
Code :
- srand((unsigned) time(NULL));
- char * base = "nom";
- char * ext = ".txt";
- char nom_au_hasard [32] ;
- sprintf(nom_au_hasard , "%s%c%s", base, 'a' + rand () % 26, ext);
|
|
Sert à rien un buffer de 32 octets (après, on dit que les programmes ramment, si pour une broutille comme cela on alloue 32, dans un truc hard, on alloue 100.000 octets, ça rame mieux!)
3 pour la base, 1 pour le caractères hasardeux, 4 pour l'extension, 1 pour le caractère final ('\0' soit un total de 9 octets ...
Le gain est de 23 octets c'est peu mais dans un programme plus vitale ou plus gourmande, l'accumulation des ces petits gains permet d'augmenter les perfs globales ... A bon entendeur ... |