diff options
author | Eshan dhawan <eshandhawan51@gmail.com> | 2021-01-21 01:14:27 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2021-02-09 13:07:59 +0300 |
commit | d8ee634506424ce8b3bea057b84ec82dfdd7a821 (patch) | |
tree | 88f4832ccc682363ff8c47192cd09e84d1f594b7 /newlib/libc/posix/ftw.c | |
parent | 55a6e49a0813232bbca3b3e97bb03c22c5857639 (diff) |
FTW Port for Newlib
Signed-off-by: Eshan Dhawan <eshandhawan51@gmail.com>
Diffstat (limited to 'newlib/libc/posix/ftw.c')
-rw-r--r-- | newlib/libc/posix/ftw.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/newlib/libc/posix/ftw.c b/newlib/libc/posix/ftw.c new file mode 100644 index 000000000..18cfc24cb --- /dev/null +++ b/newlib/libc/posix/ftw.c @@ -0,0 +1,33 @@ +/* +* Copyright © 2005-2020 Rich Felker, et al. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include <ftw.h> + +int ftw(const char *path, int (*fn)(const char *, const struct stat *, int), int fd_limit) +{ + /* The following cast assumes that calling a function with one + * argument more than it needs behaves as expected. This is + * actually undefined, but works on all real-world machines. */ + return nftw(path, (int (*)())fn, fd_limit, FTW_PHYS); +} + |