]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
ul_copy_file: add test program
authorEgor Chelak <egor.chelak@gmail.com>
Fri, 6 Nov 2020 19:08:12 +0000 (21:08 +0200)
committerEgor Chelak <egor.chelak@gmail.com>
Mon, 9 Nov 2020 05:19:43 +0000 (07:19 +0200)
Suggested-by: Karel Zak <kzak@redhat.com>
Reviewed-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Egor Chelak <egor.chelak@gmail.com>
lib/fileutils.c

index a9c0e61c0fae713cef241b9587522a661e6eebfd..a41830457ecd824957346af7a679e7293bbddd03 100644 (file)
@@ -177,7 +177,7 @@ void close_all_fds(const int exclude[], size_t exsz)
 int main(int argc, char *argv[])
 {
        if (argc < 2)
-               errx(EXIT_FAILURE, "Usage %s --{mkstemp,close-fds}", argv[0]);
+               errx(EXIT_FAILURE, "Usage %s --{mkstemp,close-fds,copy-file}", argv[0]);
 
        if (strcmp(argv[1], "--mkstemp") == 0) {
                FILE *f;
@@ -197,6 +197,12 @@ int main(int argc, char *argv[])
                ignore_result( dup(STDIN_FILENO) );
 
                close_all_fds(wanted_fds, ARRAY_SIZE(wanted_fds));
+       } else if (strcmp(argv[1], "--copy-file") == 0) {
+               int ret = ul_copy_file(STDIN_FILENO, STDOUT_FILENO);
+               if (ret == -1)
+                       err(EXIT_FAILURE, "read");
+               else if (ret == -2)
+                       err(EXIT_FAILURE, "write");
        }
        return EXIT_SUCCESS;
 }