busybox/libbb/bb_cat.c
<<
>>
Prefs
   1/* vi: set sw=4 ts=4: */
   2/*
   3 * Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
   4 *
   5 * Licensed under GPLv2, see file LICENSE in this source tree.
   6 */
   7//kbuild:lib-y += bb_cat.o
   8
   9#include "libbb.h"
  10
  11int FAST_FUNC bb_cat(char **argv)
  12{
  13        int fd;
  14        int retval = EXIT_SUCCESS;
  15
  16        if (!*argv)
  17                argv = (char**) &bb_argv_dash;
  18
  19        do {
  20                fd = open_or_warn_stdin(*argv);
  21                if (fd >= 0) {
  22                        /* This is not a xfunc - never exits */
  23                        off_t r = bb_copyfd_eof(fd, STDOUT_FILENO);
  24                        if (fd != STDIN_FILENO)
  25                                close(fd);
  26                        if (r >= 0)
  27                                continue;
  28                }
  29                retval = EXIT_FAILURE;
  30        } while (*++argv);
  31
  32        return retval;
  33}
  34