Если вы заботитесь о совместимости, на странице man для tmpnam:
Страница man tmpnam
BUGS
Never use this function. Use mkstemp(3) instead.
Справочная страница mkstemp
SYNOPSIS
#include <stdlib.h>
int mkstemp(char *template);
DESCRIPTION
The mkstemp() function generates a unique temporary file name from template. The last six characters of template must be
XXXXXX and these are replaced with a string that makes the filename unique. The file is then created with mode read/write
но все это говорит о том, что вы подготовили свой шаблон с префиксом содержимого переменной среды TMP.