mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
* io/Makefile (routines): Add euidaccess.
* sysdeps/mach/hurd/euidaccess.c: New file. * sysdeps/stub/euidaccess.c: New file. * posix/unistd.h [__USE_GNU] (euidaccess): Declare it. * dirent/Makefile (routines): Add dirfd. * sysdeps/stub/dirfd.c: New file. * sysdeps/unix/dirfd.c: New file. * sysdeps/unix/dirstream.h (_DIR_dirfd): New macro. * dirent/dirent.h (dirfd): Declare new function. Define as macro _DIR_dirfd if that is defined. * sysdeps/mach/hurd/dirstream.h (DIR): Replace `__port' member with `void *__fd'. * sysdeps/mach/hurd/opendir.c: Use DIRP->__fd instead of DIRP->__port. Open the file with `open'; set FD_CLOEXEC on the fd. * sysdeps/mach/hurd/closedir.c: Likewise. * sysdeps/mach/hurd/readdir.c: Likewise. * sysdeps/mach/hurd/dirfd.c: New file. * posix/Makefile (glob/configure): Do cvs commit if there is a CVS directory. (glob/ChangeLog): Likewise. * locale/locale.h (LC_*): Use small integers instead of bit masks.
This commit is contained in:
parent
e66f63fb63
commit
22a1292a42
25
ChangeLog
25
ChangeLog
@ -1,5 +1,30 @@
|
||||
Fri Feb 24 14:40:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
|
||||
|
||||
* io/Makefile (routines): Add euidaccess.
|
||||
* sysdeps/mach/hurd/euidaccess.c: New file.
|
||||
* sysdeps/stub/euidaccess.c: New file.
|
||||
* posix/unistd.h [__USE_GNU] (euidaccess): Declare it.
|
||||
|
||||
* dirent/Makefile (routines): Add dirfd.
|
||||
* sysdeps/stub/dirfd.c: New file.
|
||||
* sysdeps/unix/dirfd.c: New file.
|
||||
* sysdeps/unix/dirstream.h (_DIR_dirfd): New macro.
|
||||
* dirent/dirent.h (dirfd): Declare new function. Define as macro
|
||||
_DIR_dirfd if that is defined.
|
||||
* sysdeps/mach/hurd/dirstream.h (DIR): Replace `__port' member
|
||||
with `void *__fd'.
|
||||
* sysdeps/mach/hurd/opendir.c: Use DIRP->__fd instead of DIRP->__port.
|
||||
Open the file with `open'; set FD_CLOEXEC on the fd.
|
||||
* sysdeps/mach/hurd/closedir.c: Likewise.
|
||||
* sysdeps/mach/hurd/readdir.c: Likewise.
|
||||
* sysdeps/mach/hurd/dirfd.c: New file.
|
||||
|
||||
* posix/Makefile (glob/configure): Do cvs commit if there is a CVS
|
||||
directory.
|
||||
(glob/ChangeLog): Likewise.
|
||||
|
||||
* locale/locale.h (LC_*): Use small integers instead of bit masks.
|
||||
|
||||
* stdio/bug4.c: Put temporary files in /tmp.
|
||||
* stdio/bug3.c: Likewise.
|
||||
* stdio/bug5.c: Likewise.
|
||||
|
5
NEWS
5
NEWS
@ -1,4 +1,4 @@
|
||||
GNU C Library NEWS -- history of user-visible changes. 17 February 1995
|
||||
GNU C Library NEWS -- history of user-visible changes. 24 February 1995
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
See the end for copying conditions.
|
||||
@ -63,6 +63,9 @@ Version 1.10
|
||||
numbers as indicated by the locale. In the default "C" locale, numbers
|
||||
are not grouped; but locales for specific countries will define the
|
||||
usual conventions (i.e. separate thousands with `,' in the US locale).
|
||||
|
||||
* New function `euidaccess' checks allowed access to a file like `access',
|
||||
but using the effective IDs instead of the real IDs.
|
||||
|
||||
Version 1.09
|
||||
|
||||
|
@ -24,7 +24,7 @@ subdir := dirent
|
||||
headers := dirent.h dirstream.h
|
||||
routines := opendir closedir readdir rewinddir \
|
||||
seekdir telldir scandir alphasort \
|
||||
getdents
|
||||
getdents dirfd
|
||||
distribute := direct.h
|
||||
|
||||
tests := list tst-seekdir
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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
|
||||
@ -96,6 +96,13 @@ extern void rewinddir __P ((DIR * __dirp));
|
||||
|
||||
#if defined(__USE_BSD) || defined(__USE_MISC)
|
||||
|
||||
/* Return the file descriptor used by DIRP. */
|
||||
extern int dirfd __P ((DIR *__dirp));
|
||||
|
||||
#if defined (__OPTIMIZE__) && defined (_DIR_dirfd)
|
||||
#define dirfd(dirp) _DIR_dirfd (dirp)
|
||||
#endif
|
||||
|
||||
#ifndef MAXNAMLEN
|
||||
/* Get the definitions of the POSIX.1 limits. */
|
||||
#include <posix1_lim.h>
|
||||
|
@ -31,7 +31,7 @@ routines := \
|
||||
mkfifo \
|
||||
stat fstat lstat \
|
||||
umask chmod fchmod mkdir \
|
||||
open close read write lseek access \
|
||||
open close read write lseek access euidaccess \
|
||||
fcntl flock lockf \
|
||||
dup dup2 pipe \
|
||||
creat \
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1992, 1995 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
|
||||
@ -28,16 +28,14 @@ Cambridge, MA 02139, USA. */
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* These are the possibilities for the first argument to setlocale.
|
||||
Note that although they are bit masks, they cannot be OR'd together
|
||||
to form a new argument to pass. They must be used one at a time. */
|
||||
#define LC_COLLATE (1 << 0)
|
||||
#define LC_CTYPE (1 << 1)
|
||||
#define LC_MONETARY (1 << 2)
|
||||
#define LC_NUMERIC (1 << 3)
|
||||
#define LC_TIME (1 << 4)
|
||||
#define LC_RESPONSE (1 << 5)
|
||||
#define LC_ALL (LC_COLLATE|LC_CTYPE|LC_MONETARY|LC_NUMERIC|LC_TIME|\
|
||||
LC_RESPONSE)
|
||||
The code assumes that LC_ALL is the highest value, and zero the lowest. */
|
||||
#define LC_COLLATE 0
|
||||
#define LC_CTYPE 1
|
||||
#define LC_MONETARY 2
|
||||
#define LC_NUMERIC 3
|
||||
#define LC_TIME 4
|
||||
#define LC_MESSAGES 5
|
||||
#define LC_ALL 6
|
||||
|
||||
|
||||
/* Structure giving information about numeric and monetary notation. */
|
||||
|
@ -451,7 +451,7 @@ however---BSD does not provide any way to free such blocks.
|
||||
|
||||
@comment malloc.h stdlib.h
|
||||
@comment BSD
|
||||
@deftypefun {void *} memalign (size_t @var{size}, size_t @var{boundary})
|
||||
@deftypefun {void *} memalign (size_t @var{boundary}, size_t @var{size})
|
||||
The @code{memalign} function allocates a block of @var{size} bytes whose
|
||||
address is a multiple of @var{boundary}. The @var{boundary} must be a
|
||||
power of two! The function @code{memalign} works by calling
|
||||
@ -469,7 +469,7 @@ as the value of the second argument. It is implemented like this:
|
||||
void *
|
||||
valloc (size_t size)
|
||||
@{
|
||||
return memalign (size, getpagesize ());
|
||||
return memalign (getpagesize (), size);
|
||||
@}
|
||||
@end smallexample
|
||||
@c !!! xref getpagesize
|
||||
|
@ -70,11 +70,13 @@ glob/%.h: %.h
|
||||
|
||||
glob/configure: glob/configure.in
|
||||
cd glob; autoconf $(ACFLAGS)
|
||||
test -d CVS && cvs commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
|
||||
|
||||
glob/ChangeLog: ../ChangeLog
|
||||
changelog-extract --regexp 'posix/(glob|fnmatch).*' < $< > $@.new
|
||||
chmod a-w $@.new
|
||||
mv -f $@.new $@
|
||||
test -d CVS && cvs commit -mRegenerated $@
|
||||
|
||||
%.Z: %
|
||||
compress -c $< > $@-tmp
|
||||
|
1700
posix/glob/configure
vendored
1700
posix/glob/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -107,10 +107,16 @@ __BEGIN_DECLS
|
||||
#define X_OK 1 /* Test for execute permission. */
|
||||
#define F_OK 0 /* Test for existence. */
|
||||
|
||||
/* Test for access to NAME. */
|
||||
/* Test for access to NAME using the real UID and real GID. */
|
||||
extern int __access __P ((__const char *__name, int __type));
|
||||
extern int access __P ((__const char *__name, int __type));
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* Test for access to NAME using the effective UID and GID
|
||||
(as normal file operations use). */
|
||||
extern int euidaccess __P ((__const char *__name, int __type));
|
||||
#endif
|
||||
|
||||
|
||||
/* Values for the WHENCE argument to lseek. */
|
||||
#ifndef _STDIO_H /* <stdio.h> has the same definitions. */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1995 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
|
||||
@ -37,13 +37,13 @@ DEFUN(closedir, (dirp), DIR *dirp)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((err = __vm_deallocate (__mach_task_self (),
|
||||
(vm_address_t) dirp->__data, dirp->__allocation))
|
||||
|| (err = __mach_port_deallocate (__mach_task_self (), dirp->__port)))
|
||||
{
|
||||
errno = err;
|
||||
return -1;
|
||||
}
|
||||
if (err = __vm_deallocate (__mach_task_self (),
|
||||
(vm_address_t) dirp->__data, dirp->__allocation))
|
||||
return __hurd_fail (err);
|
||||
dirp->__data = NULL;
|
||||
|
||||
if (err = _hurd_fd_close (dirp->__fd))
|
||||
return __hurd_fail (err);
|
||||
|
||||
free (dirp);
|
||||
|
||||
|
39
sysdeps/mach/hurd/dirfd.c
Normal file
39
sysdeps/mach/hurd/dirfd.c
Normal file
@ -0,0 +1,39 @@
|
||||
/* dirfd -- Return the file desciptor used by a DIR stream. Hurd version.
|
||||
Copyright (C) 1995 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <dirent.h>
|
||||
#include <dirstream.h>
|
||||
|
||||
int
|
||||
dirfd (DIR *dirp)
|
||||
{
|
||||
int fd;
|
||||
__mutex_lock (&_hurd_dtable_lock);
|
||||
for (fd = 0; fd < _hurd_dtablesize; ++fd)
|
||||
if (_hurd_dtable[fd] == dirp->__fd)
|
||||
break;
|
||||
if (fd == _hurd_dtablesize)
|
||||
{
|
||||
errno = EINVAL
|
||||
fd = -1;
|
||||
}
|
||||
__mutex_unlock (&_hurd_dtable_lock);
|
||||
|
||||
return fd;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1994, 1995 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
|
||||
@ -27,8 +27,7 @@ Cambridge, MA 02139, USA. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* XXX we need a namespace-clean name for mach_port_t! */
|
||||
unsigned int __port; /* Port to the directory. */
|
||||
void *__fd; /* `struct hurd_fd' pointer for descriptor. */
|
||||
char *__data; /* Directory block. */
|
||||
int __entry_data; /* Entry number `__data' corresponds to. */
|
||||
char *__ptr; /* Current pointer into the block. */
|
||||
|
58
sysdeps/mach/hurd/euidaccess.c
Normal file
58
sysdeps/mach/hurd/euidaccess.c
Normal file
@ -0,0 +1,58 @@
|
||||
/* Test for access to FILE using effective UID and GID. Hurd version.
|
||||
Copyright (C) 1991, 1995 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <stddef.h>
|
||||
#include <unistd.h>
|
||||
#include <hurd.h>
|
||||
|
||||
int
|
||||
euidaccess (file, type)
|
||||
const char *file;
|
||||
int type;
|
||||
{
|
||||
file_t port;
|
||||
int allowed, flags;
|
||||
|
||||
port = __file_name_lookup (file, 0, 0);
|
||||
if (port == MACH_PORT_NULL)
|
||||
return -1;
|
||||
|
||||
/* Find out what types of access we are allowed to this file. */
|
||||
err = __file_check_access (file, &allowed);
|
||||
__mach_port_deallocate (__mach_task_self (), file);
|
||||
if (err)
|
||||
return __hurd_fail (err);
|
||||
|
||||
flags = 0;
|
||||
if (type & R_OK)
|
||||
flags |= O_READ;
|
||||
if (type & W_OK)
|
||||
flags |= O_WRITE;
|
||||
if (type & X_OK)
|
||||
flags |= O_EXEC;
|
||||
|
||||
if (flags & ~allowed)
|
||||
/* We are not allowed all the requested types of access. */
|
||||
return __hurd_fail (EACCES);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
weak_alias (__access, access)
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1994, 1995 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
|
||||
@ -36,21 +36,29 @@ DEFUN(opendir, (name), CONST char *name)
|
||||
{
|
||||
DIR *dirp;
|
||||
file_t port;
|
||||
int fd;
|
||||
|
||||
port = __file_name_lookup (name, O_RDONLY, 0);
|
||||
if (port == MACH_PORT_NULL)
|
||||
fd = __open (name, O_RDONLY);
|
||||
if (fd < 0)
|
||||
return NULL;
|
||||
|
||||
/* XXX this port should be deallocated on exec */
|
||||
|
||||
dirp = (DIR *) malloc (sizeof (DIR));
|
||||
if (dirp == NULL)
|
||||
{
|
||||
__mach_port_deallocate (__mach_task_self (), port);
|
||||
__close (fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dirp->__port = port;
|
||||
/* Extract the pointer to the descriptor structure. */
|
||||
__mutex_lock (&_hurd_dtable_lock);
|
||||
dirp->__fd = _hurd_dtable[fd];
|
||||
__mutex_unlock (&_hurd_dtable_lock);
|
||||
|
||||
/* Set the descriptor to close on exec. */
|
||||
__spin_lock (&dirp->__fd->port.lock);
|
||||
dirp->__fd->flags |= FD_CLOEXEC;
|
||||
__spin_unlock (&dirp->__fd->port.lock);
|
||||
|
||||
dirp->__data = dirp->__ptr = NULL;
|
||||
dirp->__entry_data = dirp->__entry_ptr = 0;
|
||||
dirp->__allocation = 0;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1994, 1995 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
|
||||
@ -49,8 +49,11 @@ DEFUN(readdir, (dirp), DIR *dirp)
|
||||
int nentries;
|
||||
error_t err;
|
||||
|
||||
if (err = __dir_readdir (dirp->__port, &data, &dirp->__size,
|
||||
dirp->__entry_ptr, -1, 0, &nentries))
|
||||
if (err = HURD_FD_PORT_USE (dirp->__fd,
|
||||
__dir_readdir (dirp->__port,
|
||||
&data, &dirp->__size,
|
||||
dirp->__entry_ptr,
|
||||
-1, 0, &nentries)))
|
||||
return __hurd_fail (err), NULL;
|
||||
|
||||
/* DATA now corresponds to entry index DIRP->__entry_ptr. */
|
||||
|
30
sysdeps/stub/dirfd.c
Normal file
30
sysdeps/stub/dirfd.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* dirfd -- Return the file desciptor used by a DIR stream. Stub version.
|
||||
Copyright (C) 1995 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <dirent.h>
|
||||
#include <dirstream.h>
|
||||
#include <errno.h>
|
||||
|
||||
int
|
||||
dirfd (dirp)
|
||||
FILE *dirp;
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
38
sysdeps/stub/euidaccess.c
Normal file
38
sysdeps/stub/euidaccess.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* Test for access to FILE using effective UID and GID. Stub version.
|
||||
Copyright (C) 1991, 1995 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <stddef.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int
|
||||
euidaccess (file, type)
|
||||
const char *file;
|
||||
int type;
|
||||
{
|
||||
if (file == NULL || (type & ~(R_OK|W_OK|X_OK|F_OK)) != 0)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
stub_warning (euidaccess)
|
28
sysdeps/unix/dirfd.c
Normal file
28
sysdeps/unix/dirfd.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* dirfd -- Return the file desciptor used by a DIR stream. Unix version.
|
||||
Copyright (C) 1995 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <dirent.h>
|
||||
#include <dirstream.h>
|
||||
|
||||
int
|
||||
dirfd (dirp)
|
||||
FILE *dirp;
|
||||
{
|
||||
return dirp->__fd;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1995 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
|
||||
@ -40,4 +40,6 @@ typedef struct
|
||||
struct dirent __entry; /* Returned by `readdir'. */
|
||||
} DIR;
|
||||
|
||||
#define _DIR_dirfd(dirp) ((dirp)->__fd)
|
||||
|
||||
#endif /* dirstream.h */
|
||||
|
Loading…
Reference in New Issue
Block a user