32 lines
		
	
	
		
			655 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			655 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*
 | 
						|
 * tmpnam.c - create a unique filename
 | 
						|
 */
 | 
						|
/* $Header$ */
 | 
						|
 | 
						|
#if	defined(_POSIX_SOURCE)
 | 
						|
#include	<sys/types.h>
 | 
						|
#endif
 | 
						|
#include	<stdio.h>
 | 
						|
#include	<string.h>
 | 
						|
#include	"loc_incl.h"
 | 
						|
 | 
						|
pid_t _getpid(void);
 | 
						|
 | 
						|
char *
 | 
						|
tmpnam(char *s) {
 | 
						|
	static char name_buffer[L_tmpnam] = "/tmp/tmp.";
 | 
						|
	static unsigned long count = 0;
 | 
						|
	static char *name = NULL;
 | 
						|
 | 
						|
	if (!name) { 
 | 
						|
		name = name_buffer + strlen(name_buffer);
 | 
						|
		name = _i_compute((unsigned long)_getpid(), 10, name, 5);
 | 
						|
		*name++ = '.';
 | 
						|
		*name = '\0';
 | 
						|
	}
 | 
						|
	if (++count > TMP_MAX) count = 1;	/* wrap-around */
 | 
						|
	*_i_compute(count, 10, name, 3) = '\0';
 | 
						|
	if (s) return strcpy(s, name_buffer);
 | 
						|
	else return name_buffer;
 | 
						|
}
 |