13e12c5d1SDavid du Colombier /* 23e12c5d1SDavid du Colombier * pANS stdio -- tmpnam 33e12c5d1SDavid du Colombier */ 43e12c5d1SDavid du Colombier #include "iolib.h" 53e12c5d1SDavid du Colombier #include <string.h> 63e12c5d1SDavid du Colombier 7*2d069feaSDavid du Colombier char * tmpnam(char * s)8*2d069feaSDavid du Colombiertmpnam(char *s) 9*2d069feaSDavid du Colombier { 103e12c5d1SDavid du Colombier static char name[] = "/tmp/tn000000000000"; 113e12c5d1SDavid du Colombier char *p; 12*2d069feaSDavid du Colombier 133e12c5d1SDavid du Colombier do { 143e12c5d1SDavid du Colombier p = name + 7; 15*2d069feaSDavid du Colombier while (*p == '9') 16*2d069feaSDavid du Colombier *p++ = '0'; 17*2d069feaSDavid du Colombier if (*p == '\0') 18*2d069feaSDavid du Colombier return NULL; 193e12c5d1SDavid du Colombier ++*p; 203e12c5d1SDavid du Colombier } while (access(name, 0) == 0); 213e12c5d1SDavid du Colombier if (s) { 223e12c5d1SDavid du Colombier strcpy(s, name); 233e12c5d1SDavid du Colombier return s; 243e12c5d1SDavid du Colombier } 253e12c5d1SDavid du Colombier return name; 263e12c5d1SDavid du Colombier } 27*2d069feaSDavid du Colombier 28*2d069feaSDavid du Colombier 29*2d069feaSDavid du Colombier char * tmpnam_r(char * s)30*2d069feaSDavid du Colombiertmpnam_r(char *s) 31*2d069feaSDavid du Colombier { 32*2d069feaSDavid du Colombier return s ? tmpnam(s) : NULL; 33*2d069feaSDavid du Colombier } 34