home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJLSR201.ZIP / src / libc / ansi / stdio / tmpfile.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-04  |  621 b   |  33 lines

  1. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  2. #include <libc/stubs.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <fcntl.h>
  7. #include <libc/file.h>
  8.  
  9. FILE *
  10. tmpfile(void)
  11. {
  12.   FILE *f;
  13.   char *temp_name;
  14.   char *n_t_r;
  15.  
  16.   temp_name = tmpnam(0);
  17.   if (temp_name == 0)
  18.     return 0;
  19.  
  20.   n_t_r = (char *)malloc(strlen(temp_name)+1);
  21.   if (!n_t_r)
  22.     return 0;
  23.  
  24.   f = fopen(temp_name, (_fmode & O_TEXT) ? "wt+" : "wb+");
  25.   if (f)
  26.   {
  27.     f->_flag |= _IORMONCL;
  28.     f->_name_to_remove = n_t_r;
  29.     strcpy(f->_name_to_remove, temp_name);
  30.   }
  31.   return f;
  32. }
  33.