#include #include #include #include const size_t BUF_SIZE = 1024; int main(int argc, char *argv[]) { if (argc < 3) return 1; int fd_from = open(argv[1], O_RDONLY); if (fd_from < 0) return 2; int fd_to = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0744); if (fd_to < 0) return 3; char buf[BUF_SIZE]; size_t actual = read(fd_from, buf, BUF_SIZE); while (actual > 0) { write(fd_to, buf, actual); actual = read(fd_from, buf, BUF_SIZE); } return 0; }