59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
/**********
|
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
|
**********/
|
|
|
|
/*
|
|
* A more portable version of the standard "mktemp( )" function
|
|
*
|
|
* FIXME: remove smktemp() and adjust all callers to use tmpfile(3).
|
|
*/
|
|
|
|
#include "ngspice/ngspice.h"
|
|
#include "mktemp.h"
|
|
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
#ifndef TEMPFORMAT
|
|
#define TEMPFORMAT "temp%s%d"
|
|
#endif
|
|
#ifndef TEMPFORMAT2
|
|
#define TEMPFORMAT "temp%s%d_%d"
|
|
#endif
|
|
|
|
|
|
char *
|
|
smktemp(char *id)
|
|
{
|
|
if (!id)
|
|
id = "sp";
|
|
const char* const home = getenv("HOME");
|
|
if (home) {
|
|
return tprintf("%s"TEMPFORMAT, home, id, getpid());
|
|
}
|
|
const char* const usr = getenv("USERPROFILE");
|
|
if (usr) {
|
|
return tprintf("%s\\"TEMPFORMAT, usr, id, getpid());
|
|
}
|
|
return tprintf(TEMPFORMAT, id, getpid());
|
|
}
|
|
|
|
|
|
char*
|
|
smktemp2(char* id, int n)
|
|
{
|
|
if (!id)
|
|
id = "sp";
|
|
const char* const home = getenv("HOME");
|
|
if (home) {
|
|
return tprintf("%s"TEMPFORMAT2, home, id, getpid(), n);
|
|
}
|
|
const char* const usr = getenv("USERPROFILE");
|
|
if (usr) {
|
|
return tprintf("%s\\"TEMPFORMAT2, usr, id, getpid(), n);
|
|
}
|
|
return tprintf(TEMPFORMAT2, id, getpid(), n);
|
|
}
|
|
|