Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       mkstemp - make a unique filename

SYNOPSIS

       #include <stdlib.h>

       int mkstemp(char *template);

DESCRIPTION

       The  mkstemp() function shall replace the contents of the string pointed to by template by
       a unique filename, and return a file descriptor for the file open for reading and writing.
       The  function  thus  prevents any possible race condition between testing whether the file
       exists and opening it for use. The string in template should look like a filename with six
       trailing  'X'  s;  mkstemp() replaces each 'X' with a character from the portable filename
       character set. The characters are chosen such that the resulting name does  not  duplicate
       the name of an existing file at the time of a call to mkstemp().

RETURN VALUE

       Upon  successful completion, mkstemp() shall return an open file descriptor. Otherwise, -1
       shall be returned if no suitable file could be created.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

   Generating a Filename
       The following example  creates  a  file  with  a  10-character  name  beginning  with  the
       characters  "file"  and  opens the file for reading and writing. The value returned as the
       value of fd is a file descriptor that identifies the file.

              #include <stdlib.h>
              ...
              char template[] = "/tmp/fileXXXXXX";
              int fd;

              fd = mkstemp(template);

APPLICATION USAGE

       It is possible to run out of letters.

       The mkstemp() function need not check to determine whether the filename part  of  template
       exceeds the maximum allowable filename length.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       getpid()   ,   open()   ,   tmpfile()   ,  tmpnam()  ,  the  Base  Definitions  volume  of
       IEEE Std 1003.1-2001, <stdlib.h>

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .