読者です 読者をやめる 読者になる 読者になる

uniqueなことが保証されたテンポラリファイルを生成する方法

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 );
}