(root)/
texinfo-7.1/
gnulib/
lib/
mkstemp.c
       1  /* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2023 Free Software
       2     Foundation, Inc.
       3     This file is derived from the one in the GNU C Library.
       4  
       5     This file is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU Lesser General Public License as
       7     published by the Free Software Foundation; either version 2.1 of the
       8     License, or (at your option) any later version.
       9  
      10     This file is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  #if !_LIBC
      19  # include <config.h>
      20  #endif
      21  
      22  #include <stdlib.h>
      23  
      24  #if !_LIBC
      25  # include "tempname.h"
      26  # define __gen_tempname gen_tempname
      27  # ifndef __GT_FILE
      28  #  define __GT_FILE GT_FILE
      29  # endif
      30  #endif
      31  
      32  #include <stdio.h>
      33  
      34  #ifndef __GT_FILE
      35  # define __GT_FILE 0
      36  #endif
      37  
      38  /* Generate a unique temporary file name from XTEMPLATE.
      39     The last six characters of XTEMPLATE must be "XXXXXX";
      40     they are replaced with a string that makes the file name unique.
      41     Then open the file and return a fd.
      42  
      43     If you are creating temporary files which will later be removed,
      44     consider using the clean-temp module, which avoids several pitfalls
      45     of using mkstemp directly. */
      46  int
      47  mkstemp (char *xtemplate)
      48  {
      49    return __gen_tempname (xtemplate, 0, 0, __GT_FILE);
      50  }