#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

int main(int argc, char** argv)
{
  char c;
  int read_fd;
  int write_fd;

  if (argc < 3) {
    printf("Usage: cp src dest\n");
    return 1;
  }

  read_fd  = open(argv[1], O_RDONLY);
  write_fd = open(argv[2],
                  O_WRONLY|O_TRUNC|O_CREAT,
                  0644);

  while(read(read_fd, &c, 1) > 0) {
    write(write_fd, &c, 1);
  }

  close(read_fd);
  close(write_fd);
  return 0;
}