V10/cmd/odist/v10/lcreat.c

int
lcreat(char *name, int mode)
{
	char temp[14];
	int fd;

	sprintf(temp, "lcreat.%d", getpid());	/* only works in same file system */
	fd = creat(temp, mode);
	if (fd < 0)
		return fd;
	if (link(temp, name) < 0) {
		close(fd);
		unlink(temp);
		return -1;
	}
	unlink(temp);
	return fd;
}