(root)/
glibc-2.38/
stdio-common/
tmpnam_r.c
       1  /* Copyright (C) 1991-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #include <stdio.h>
      19  
      20  /* Generate a unique filename in P_tmpdir.  If S is NULL return NULL.
      21     This makes this function thread safe.  */
      22  char *
      23  tmpnam_r (char s[L_tmpnam])
      24  {
      25    if (s == NULL)
      26      return NULL;
      27  
      28    if (__path_search (s, L_tmpnam, NULL, NULL, 0))
      29      return NULL;
      30    if (__gen_tempname (s, 0, 0, __GT_NOCREATE))
      31      return NULL;
      32  
      33    return s;
      34  }
      35  
      36  link_warning (tmpnam_r,
      37  	      "the use of `tmpnam_r' is dangerous, better use `mkstemp'")