To generate a unique filename that won't conflict with any other files that exist in the current directory, use the tmpnam() function declared in <stdio.h> as follows:
char * tmpnam(char * name);
The function generates a unique name that may contain up to L_tmpnam characters. You can call tmpnam() up to TMP_MAX (the TMP_MAX and L_tmpnam constants are defined in <stdio.h>) times without generating repeated names. For example:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
char name[L_tmpnam];
for (int n=0; n<TMP_MAX; ++n)
{
tmpnam(name);
cout << name << endl;
}
}