diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-02-18 13:02:37 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-02-18 13:42:29 +0100 |
commit | fa185f0d4529c6d70f690306f431ca23662b9138 (patch) | |
tree | ad2719a1dd633d74a7a61ad59eefd08c944e19c6 /sysdeps/unix/sysv | |
parent | e4a399921390509418826e8e8995d2441f29e243 (diff) | |
download | glibc-fa185f0d4529c6d70f690306f431ca23662b9138.tar.gz glibc-fa185f0d4529c6d70f690306f431ca23662b9138.tar.xz glibc-fa185f0d4529c6d70f690306f431ca23662b9138.zip |
<fd_to_filename.h>: Add type safety and port to Hurd
The new type struct fd_to_filename makes the allocation of the backing storage explicit. Hurd uses /dev/fd, not /proc/self/fd. Co-Authored-By: Paul Eggert <eggert@cs.ucla.edu>
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r-- | sysdeps/unix/sysv/linux/arch-fd_to_filename.h (renamed from sysdeps/unix/sysv/linux/fd_to_filename.h) | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/sysdeps/unix/sysv/linux/fd_to_filename.h b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h index 92a5e02976..b6017214c7 100644 --- a/sysdeps/unix/sysv/linux/fd_to_filename.h +++ b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h @@ -1,5 +1,5 @@ /* Query filename corresponding to an open FD. Linux version. - Copyright (C) 2001-2020 Free Software Foundation, Inc. + Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,22 +16,4 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ -#include <sys/stat.h> -#include <string.h> -#include <_itoa.h> - -#define FD_TO_FILENAME_SIZE ((sizeof ("/proc/self/fd/") - 1) \ - + (sizeof ("4294967295") - 1) + 1) - -static inline const char * -fd_to_filename (unsigned int fd, char *buf) -{ - *_fitoa_word (fd, __stpcpy (buf, "/proc/self/fd/"), 10, 0) = '\0'; - - /* We must make sure the file exists. */ - struct stat64 st; - if (__lxstat64 (_STAT_VER, buf, &st) < 0) - /* /proc is not mounted or something else happened. */ - return NULL; - return buf; -} +#define FD_TO_FILENAME_PREFIX "/proc/self/fd/" |