(root)/
glibc-2.38/
support/
temp_file.h
       1  /* Declarations for temporary file handling.
       2     Copyright (C) 2016-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library 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 GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef SUPPORT_TEMP_FILE_H
      20  #define SUPPORT_TEMP_FILE_H
      21  
      22  #include <sys/cdefs.h>
      23  
      24  __BEGIN_DECLS
      25  
      26  /* Schedule a temporary file for deletion on exit.  */
      27  void add_temp_file (const char *name);
      28  
      29  /* Create a temporary file.  Return the opened file descriptor on
      30     success, or -1 on failure.  Write the file name to *FILENAME if
      31     FILENAME is not NULL.  In this case, the caller is expected to free
      32     *FILENAME.  */
      33  int create_temp_file (const char *base, char **filename);
      34  
      35  /* Create a temporary file in directory DIR.  Return the opened file
      36     descriptor on success, or -1 on failure.  Write the file name to
      37     *FILENAME if FILENAME is not NULL.  In this case, the caller is
      38     expected to free *FILENAME.  */
      39  int create_temp_file_in_dir (const char *base, const char *dir,
      40  			     char **filename);
      41  
      42  /* Create a temporary directory and schedule it for deletion.  BASE is
      43     used as a prefix for the unique directory name, which the function
      44     returns.  The caller should free this string.  */
      45  char *support_create_temp_directory (const char *base);
      46  
      47  /* Create a temporary directory tree that is longer than PATH_MAX and schedule
      48     it for deletion.  BASENAME is used as a prefix for the unique directory
      49     name, which the function returns.  The caller should free this string.  */
      50  char *support_create_and_chdir_toolong_temp_directory (const char *basename);
      51  
      52  /* Change into the innermost directory of the directory tree BASE, which was
      53     created using support_create_and_chdir_toolong_temp_directory.  */
      54  void support_chdir_toolong_temp_directory (const char *base);
      55  
      56  __END_DECLS
      57  
      58  #endif /* SUPPORT_TEMP_FILE_H */