O macro TMP_MAX expande para um inteiro que indica o número mínimo de vezes que a função tmpnam pode ser chamada e ainda gerar um nome de arquivo único.
O padrão C especifica que o valor de TMP_MAX deve ser, ao menos, 25. Além disso, é permitido que a função tmpfile faça uso deste limite de nomes.
#include <stdio.h>
int main() {
for (int i = 0; i < TMP_MAX; i++) {
tmpnam(NULL); /* todas essas chamadas geram um nome de arquivo único */
}
tmpnam(NULL); /* não é garantido que essa chamada gere um nome de arquivo único -- ele pode ser igual a um nome já gerado */
return 0;
}