mkstemp(3)というのがオススメ。tmpfile(3)もあるけど、fcloseしたらすぐ削除されてしまうとのことで意味わからん。あとでunlinkするのが面倒なんだろか。mktemp(3)は決して使ってはならない。いいか、使っちゃダメだぞ! ダメだぞ! 絶対ダメだからな!!
#include <stdio.h> int main(){ FILE * tmp; char filename[] = "hogetemp.XXXXXX"; //Xが6個並んでないといけない int fd = mkstemp( filename ); if( fd < 0 )return 1; tmp = fdopen( fd, "w" ); fprintf( tmp, "hoge\n" ); fclose(tmp); printf( "saved into %s.\n", filename ); }