mkstemp.c revision 1.5
11.5Sthorpej/* $NetBSD: mkstemp.c,v 1.5 2002/09/14 04:27:21 thorpej Exp $ */ 21.1Smycroft 31.1Smycroft/* 41.1Smycroft * Copyright (c) 1987, 1993 51.1Smycroft * The Regents of the University of California. All rights reserved. 61.1Smycroft * 71.1Smycroft * Redistribution and use in source and binary forms, with or without 81.1Smycroft * modification, are permitted provided that the following conditions 91.1Smycroft * are met: 101.1Smycroft * 1. Redistributions of source code must retain the above copyright 111.1Smycroft * notice, this list of conditions and the following disclaimer. 121.1Smycroft * 2. Redistributions in binary form must reproduce the above copyright 131.1Smycroft * notice, this list of conditions and the following disclaimer in the 141.1Smycroft * documentation and/or other materials provided with the distribution. 151.1Smycroft * 3. All advertising materials mentioning features or use of this software 161.1Smycroft * must display the following acknowledgement: 171.1Smycroft * This product includes software developed by the University of 181.1Smycroft * California, Berkeley and its contributors. 191.1Smycroft * 4. Neither the name of the University nor the names of its contributors 201.1Smycroft * may be used to endorse or promote products derived from this software 211.1Smycroft * without specific prior written permission. 221.1Smycroft * 231.1Smycroft * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 241.1Smycroft * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 251.1Smycroft * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 261.1Smycroft * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 271.1Smycroft * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 281.1Smycroft * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 291.1Smycroft * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 301.1Smycroft * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 311.1Smycroft * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 321.1Smycroft * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 331.1Smycroft * SUCH DAMAGE. 341.1Smycroft */ 351.1Smycroft 361.5Sthorpej#if HAVE_CONFIG_H 371.5Sthorpej#include "config.h" 381.5Sthorpej#endif 391.5Sthorpej 401.5Sthorpej#if !HAVE_CONFIG_H || !HAVE_MKSTEMP 411.5Sthorpej 421.1Smycroft#include <sys/cdefs.h> 431.1Smycroft#if defined(LIBC_SCCS) && !defined(lint) 441.1Smycroft#if 0 451.1Smycroftstatic char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; 461.1Smycroft#else 471.5Sthorpej__RCSID("$NetBSD: mkstemp.c,v 1.5 2002/09/14 04:27:21 thorpej Exp $"); 481.1Smycroft#endif 491.1Smycroft#endif /* LIBC_SCCS and not lint */ 501.1Smycroft 511.5Sthorpej#if HAVE_CONFIG_H 521.5Sthorpej#define GETTEMP gettemp 531.5Sthorpej#else 541.3Slukem#include <assert.h> 551.3Slukem#include <errno.h> 561.1Smycroft#include <stdio.h> 571.1Smycroft#include <stdlib.h> 581.1Smycroft#include <unistd.h> 591.1Smycroft#include "local.h" 601.5Sthorpej#define GETTEMP __gettemp 611.5Sthorpej#endif 621.1Smycroft 631.1Smycroftint 641.1Smycroftmkstemp(path) 651.1Smycroft char *path; 661.1Smycroft{ 671.1Smycroft int fd; 681.3Slukem 691.3Slukem _DIAGASSERT(path != NULL); 701.1Smycroft 711.5Sthorpej return (GETTEMP(path, &fd, 0) ? fd : -1); 721.1Smycroft} 731.5Sthorpej 741.5Sthorpej#endif /* !HAVE_CONFIG_H || !HAVE_MKSTEMP */ 75