(root)/
tar-1.35/
gnu/
xgetcwd.c
       1  /* xgetcwd.c -- return current directory with unlimited length
       2  
       3     Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2023 Free Software
       4     Foundation, Inc.
       5  
       6     This program is free software: you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation, either version 3 of the License, or
       9     (at your option) any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      18  
      19  /* Written by Jim Meyering.  */
      20  
      21  #include <config.h>
      22  
      23  #include "xgetcwd.h"
      24  
      25  #include <errno.h>
      26  #include <unistd.h>
      27  
      28  #include "xalloc.h"
      29  
      30  /* Return the current directory, newly allocated.
      31     Upon an out-of-memory error, call xalloc_die.
      32     Upon any other type of error, return NULL with errno set.  */
      33  
      34  char *
      35  xgetcwd (void)
      36  {
      37    char *cwd = getcwd (NULL, 0);
      38    if (! cwd && errno == ENOMEM)
      39      xalloc_die ();
      40    return cwd;
      41  }