# 2.11BSD#431 - /usr/src/lib/libc/compat-sys5/tmpnam.c

##### Functions

    tempnam           X
    tmpfile           X
    tmpnam            X

##### Macros

    P_tmpdir          X

       1: /*
       2:  * Copyright (c) 1988 Regents of the University of California.
       3:  * All rights reserved.
       4:  *
       5:  * Redistribution and use in source and binary forms are permitted
       6:  * provided that the above copyright notice and this paragraph are
       7:  * duplicated in all such forms and that any documentation,
       8:  * advertising materials, and other materials related to such
       9:  * distribution and use acknowledge that the software was developed
      10:  * by the University of California, Berkeley.  The name of the
      11:  * University may not be used to endorse or promote products derived
      12:  * from this software without specific prior written permission.
      13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
      14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
      15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
      16:  */
      17:
      18: #if defined(LIBC_SCCS) && !defined(lint)
      19: static char sccsid[] = "@(#)tmpnam.c	4.6 (Berkeley) 7/23/88";
      20: #endif /* LIBC_SCCS and not lint */
      21:
      22: #include <sys/param.h>
      23: #include <stdio.h>
      24:
      25: #define P_tmpdir    "/usr/tmp"
      26:
      27: FILE *
      28: tmpfile()
      29: {
      30:     FILE *fp;
      31:     char *f, *tmpnam();
      32:
      33:     if (!(f = tmpnam((char *)NULL)) || !(fp = fopen(f, "w+"))) {
      34:         fprintf(stderr, "tmpfile: cannot open %s.\n", f);
      35:         return(NULL);
      36:     }
      37:     (void)unlink(f);
      38:     return(fp);
      39: }
      40:
      41: char *
      42: tmpnam(s)
      43:     char *s;
      44: {
      45:     char *malloc(), *mktemp();
      46:
      47:     if (!s && !(s = malloc((u_int)MAXPATHLEN)))
      48:         return(NULL);
      49:     (void)sprintf(s, "%s/XXXXXX", P_tmpdir);
      50:     return(mktemp(s));
      51: }
      52:
      53: char *
      54: tempnam(dir, pfx)
      55:     char *dir, *pfx;
      56: {
      57:     char *f, *name, *getenv(), *malloc(), *mktemp();
      58:
      59:     if (!(name = malloc((u_int)MAXPATHLEN)))
      60:         return(NULL);
      61:
      62:     if (f = getenv("TMPDIR")) {
      63:         (void)sprintf(name, "%s/%sXXXXXX", f, pfx ? "" : pfx);
      64:         if (f = mktemp(name))
      65:             return(f);
      66:     }
      67:     if (dir) {
      68:         (void)sprintf(name, "%s/%sXXXXXX", dir, pfx ? "" : pfx);
      69:         if (f = mktemp(name))
      70:             return(f);
      71:     }
      72:     (void)sprintf(name, "%s/%sXXXXXX", P_tmpdir, pfx ? "" : pfx);
      73:     if (f = mktemp(name))
      74:         return(f);
      75:     (void)sprintf(name, "/tmp/%sXXXXXX", pfx ? "" : pfx);
      76:     return(mktemp(name));
      77: }

#### Defined functions

tempnam defined in line 53; never used
tmpfile defined in line 27; never used
tmpnam defined in line 41; used 2 times

- in line 31-33(2)

#### Defined variables

sccsid defined in line 19; never used

#### Defined macros

P_tmpdir defined in line 25; used 2 times

- in line 49, 72

Last modified: 1988-12-26 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: ?E00 |