tmpfile.c 518 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * tmpfile.c - create and open a temporary file
  3. */
  4. /* $Id$ */
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <unistd.h>
  8. #include <string.h>
  9. #include "loc_incl.h"
  10. FILE *
  11. tmpfile(void) {
  12. static char name_buffer[L_tmpnam] = "/tmp/tmp." ;
  13. static char *name = NULL;
  14. FILE *file;
  15. if (!name) {
  16. name = name_buffer + strlen(name_buffer);
  17. name = _i_compute(getpid(), 10, name, 5);
  18. *name = '\0';
  19. }
  20. file = fopen(name_buffer,"wb+");
  21. if (!file) return (FILE *)NULL;
  22. (void) remove(name_buffer);
  23. return file;
  24. }