mkostemp


SYNOPSIS
       #include <stdlib.h>

       int mkstemp(char *template);

       int mkostemp (char *template, int flags);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       mkstemp(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
       mkostemp(): _GNU_SOURCE

DESCRIPTION
       The  mkstemp() function generates a unique temporary filename from tem-
       plate, creates and opens the file, and returns an open file  descriptor
       for the file.

       The  last  six  characters  of  template must be "XXXXXX" and these are
       replaced with a string that makes the filename unique.  Since  it  will
       be  modified,  template  must  not  be a string constant, but should be
       declared as a character array.

       The file is created with permissions 0600, that is, read plus write for
       owner  only.   (In glibc versions 2.06 and earlier, the file is created
       with permissions 0666, that is, read and write  for  all  users.)   The
       returned  file  descriptor  provides  both read and write access to the
       file.  The file is opened with the open(2)  O_EXCL  flag,  guaranteeing
       that the caller is the process that creates the file.

       mkostemp()  is  like  mkstemp(),  with the difference that flags as for
       open(2) may be specified in flags (e.g., O_APPEND, O_SYNC).

RETURN VALUE
       On success, these functions return the file descriptor of the temporary
       file.  On error, -1 is returned, and errno is set appropriately.

ERRORS
       EEXIST Could  not create a unique temporary filename.  Now the contents
              of template are undefined.

       EINVAL The last six characters of template were not XXXXXX.   Now  tem-
              plate is unchanged.

       These  functions  may  also  fail  with any of the errors described for
       open(2).

VERSIONS
       mkostemp() is available since glibc 2.7.

CONFORMING TO
       mkstemp(): 4.3BSD, POSIX.1-2001.  mkostemp(): is a glibc extension.

NOTES
SEE ALSO
       mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)

COLOPHON
       This page is part of release 3.23 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.



GNU                               2008-06-19                        MKSTEMP(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2012 Hurricane Electric. All Rights Reserved.