/* * Copyright (c) 1988 Regents of the University of California. * All rights reserved. * * %sccs.include.redist.c% */ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)tempnam.c 5.1 (Berkeley) 02/22/91"; #endif /* LIBC_SCCS and not lint */ #include #include #include #include #include #include char * tempnam(dir, pfx) const char *dir, *pfx; { int sverrno; char *f, *name; if (!(name = malloc(MAXPATHLEN))) return(NULL); if (!pfx) pfx = "tmp."; if (f = getenv("TMPDIR")) { (void)snprintf(name, MAXPATHLEN, "%s/%sXXXXXX", f, pfx); if (f = mktemp(name)) return(f); } if (f = (char *)dir) { (void)snprintf(name, MAXPATHLEN, "%s/%sXXXXXX", f, pfx); if (f = mktemp(name)) return(f); } f = P_tmpdir; (void)snprintf(name, MAXPATHLEN, "%s/%sXXXXXX", f, pfx); if (f = mktemp(name)) return(f); f = _PATH_TMP; (void)snprintf(name, MAXPATHLEN, "%s/%sXXXXXX", f, pfx); if (f = mktemp(name)) return(f); sverrno = errno; free(name); errno = sverrno; return(NULL); }