shithub: npe

ref: 537d4c5c119be15eec734bc443074a8d90b9c202
dir: /libnpe/mkstemp.c/

View raw version
#include <stdlib.h>

int
mkstemp(char *t)
{
	int i, l, n, f;
	char *s;

	s = t;
	n = 0;
	l = strlen(t);
	for(i = l-1; i >= 0 && t[i] == 'X'; i--, n++);
	if(n < 11){
		s = malloc(l+11-n+1);
		strcpy(s, t);
		for(i = l; i < l+11-n; i++)
			s[i] = 'X';
		s[i] = 0;
	}
	f = create(mktemp(s), ORDWR|OEXCL, 0600);
	if(s != t)
		free(s);
	return f;
}