BSD 4_4 release
[unix-history] / usr / src / lib / libc / stdio / mktemp.3
index 36e9131..361bebf 100644 (file)
-.\" Copyright (c) 1989 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1989, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\"
-.\" %sccs.include.redist.man%
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.\"    @(#)mktemp.3    6.8 (Berkeley) %G%
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\"
-.TH MKTEMP 3  ""
-.AT 3
-.SH NAME
-mktemp \- create a unique file name
-.SH SYNOPSIS
-.nf
-.ft B
-#include <unistd.h>
-
-char *mktemp(char *template);
-
-int mkstemp(char *template);
-.ft R
-.fi
-.SH DESCRIPTION
-.I Mktemp
-takes a file name template and overwrites it to create a unique file
-name for use by the application.
-The template may be any file name with some number of X's appended
-to it, for example ``/tmp/temp.XXXX''.
-The trailing X's are replaced with the current process number and/or a
+.\"     @(#)mktemp.3   8.1 (Berkeley) 6/4/93
+.\"
+.Dd June 4, 1993
+.Dt MKTEMP 3
+.Os
+.Sh NAME
+.Nm mktemp
+.Nd make temporary file name (unique)
+.Sh SYNOPSIS
+.Fd #include <unistd.h>
+.Ft char *
+.Fn mktemp "char *template"
+.Ft int
+.Fn mkstemp "char *template"
+.Sh DESCRIPTION
+The
+.Fn mktemp
+function
+takes the given file name template and overwrites a portion of it
+to create a file name.
+This file name is unique and suitable for use
+by the application.
+The template may be any file name with some number of
+.Ql X Ns s
+appended
+to it, for example
+.Pa /tmp/temp.XXXX .
+The trailing
+.Ql X Ns s
+are replaced with the current process number and/or a
 unique letter combination.
 The number of unique file names
 unique letter combination.
 The number of unique file names
-.I mktemp
-can return depends on the number of X's provided; six X's will
+.Fn mktemp
+can return depends on the number of
+.Ql X Ns s
+provided; six
+.Ql X Ns s
+will
 result in
 result in
-.I mktemp
+.Fn mktemp
 testing roughly 26 ** 6 combinations.
 testing roughly 26 ** 6 combinations.
-.PP
-.I Mkstemp
+.Pp
+The
+.Fn mkstemp
+function
 makes the same replacement to the template and creates the template file,
 mode 0600, returning a file descriptor opened for reading and writing.
 This avoids the race between testing for a file's existence and opening it
 for use.
 makes the same replacement to the template and creates the template file,
 mode 0600, returning a file descriptor opened for reading and writing.
 This avoids the race between testing for a file's existence and opening it
 for use.
-.SH "RETURN VALUE"
-.I Mktemp
-returns a pointer to the template on success and NULL on failure.
-.I Mkstemp
-returns -1 if no suitable file could be created.
-If either call fails an error code is placed in the global location
-.IR errno .
-.SH ERRORS
-.I Mktemp
+.Sh RETURN VALUES
+The
+.Fn mktemp
+function
+returns a pointer to the template on success and
+.Dv NULL
+on failure.
+The
+.Fn mkstemp
+function
+returns \-1 if no suitable file could be created.
+If either call fails an error code is placed in the global variable
+.Va errno .
+.Sh ERRORS
+The
+.Fn mktemp
 and
 and
-.I mkstemp
+.Fn mkstemp
+functions
 may set
 may set
-.I errno
+.Va errno
 to one of the following values:
 to one of the following values:
-.TP
-[ENOTDIR]
+.Bl -tag -width [ENOTDIR]
+.It Bq Er ENOTDIR
 The pathname portion of the template is not an existing directory.
 The pathname portion of the template is not an existing directory.
-.PP
-.I Mktemp
+.El
+.Pp
+The
+.Fn mktemp
 and
 and
-.I mkstemp
+.Fn mkstemp
+functions
 may also set
 may also set
-.I errno
+.Va errno
 to any value specified by the
 to any value specified by the
-.IR stat (2)
+.Xr stat 2
 function.
 function.
-.I Mkstemp
+.Pp
+The
+.Fn mkstemp
+function
 may also set
 may also set
-.I errno
+.Va errno
 to any value specified by the
 to any value specified by the
-.IR open (2)
+.Xr open 2
 function.
 function.
-.SH "SEE ALSO"
-chmod(2), getpid(2), open(2), stat(2)
+.Sh SEE ALSO
+.Xr chmod 2 ,
+.Xr getpid 2 ,
+.Xr open 2 ,
+.Xr stat 2
+.Sh HISTORY
+A
+.Nm mktemp
+function appeared in
+.At v7 .