# endif /* SYS_close_range */
#endif /* __linux__ */
-#ifndef HAVE_CLOSE_RANGE
extern void ul_close_all_fds(unsigned int first, unsigned int last);
-#endif
#define UL_COPY_READ_ERROR (-1)
#define UL_COPY_WRITE_ERROR (-2)
return m;
}
-#ifndef HAVE_CLOSE_RANGE
void ul_close_all_fds(unsigned int first, unsigned int last)
{
struct dirent *d;
}
}
}
-#endif
#ifdef TEST_PROGRAM_FILEUTILS
int main(int argc, char *argv[])
ignore_result( dup(STDIN_FILENO) );
# ifdef HAVE_CLOSE_RANGE
- close_range(STDERR_FILENO + 1, ~0U, 0);
-# else
- ul_close_all_fds(STDERR_FILENO + 1, ~0U);
+ if (close_range(STDERR_FILENO + 1, ~0U, 0) < 0)
# endif
+ ul_close_all_fds(STDERR_FILENO + 1, ~0U);
+
} else if (strcmp(argv[1], "--copy-file") == 0) {
int ret = ul_copy_file(STDIN_FILENO, STDOUT_FILENO);
if (ret == UL_COPY_READ_ERROR)
#endif
}
#ifdef HAVE_CLOSE_RANGE
- close_range(STDERR_FILENO + 1, ~0U, 0);
-#else
- ul_close_all_fds(STDERR_FILENO + 1, ~0U);
+ if (close_range(STDERR_FILENO + 1, ~0U, 0) < 0)
#endif
+ ul_close_all_fds(STDERR_FILENO + 1, ~0U);
}
int main(int argc, char **argv)