diff options
Diffstat (limited to 'missing.d/tmpnam.c')
-rw-r--r-- | missing.d/tmpnam.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/missing.d/tmpnam.c b/missing.d/tmpnam.c new file mode 100644 index 00000000..8f49859a --- /dev/null +++ b/missing.d/tmpnam.c @@ -0,0 +1,27 @@ +/* + * tmpnam - an implementation for systems lacking a library version + * this version does not rely on the P_tmpdir and L_tmpnam constants. + */ + +#ifndef NULL +#define NULL 0 +#endif + +static char template[] = "/tmp/gawkXXXXXX"; + +char * +tmpnam(tmp) +char *tmp; +{ + static char tmpbuf[sizeof(template)]; + + if (tmp == NULL) { + (void) strcpy(tmpbuf, template); + (void) mktemp(tmpbuf); + return tmpbuf; + } else { + (void) strcpy(tmp, template); + (void) mktemp(tmp); + return tmp; + } +} |