Korištenje datoteka

Program ispisuje sadržaj datoteke dane s naredbenog retka. Ako se program poziva bez argumenata, ispisuju se upute korištenja.

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  int fd1, n;
  char sl;

  //ako je program pokrenut bez argumenata ispiši upute i izađi
  if (argc < 2) {
    printf("Koristenje: vjezba4 <ime_datoteke>\n");
    exit(0);
  }

  //otvori datoteku za čitanje čije ime je dano s prvim argumentom.
  //u slučaju ne uspijelog otvaranja signaliziraj grešku i izađi
  fd1=open(argv[1], O_RDONLY);
  if (fd1 < 0) {
    perror("open");
    exit(-1);
  }

  //čitaj bajt po bajt i ispiši na standardnom izlazu
  while((n=read(fd1, &sl, 1)) > 0) {
    write(STDOUT_FILENO, &sl, 1);
  }

  //ako nije pročitan cijeli file javi grešku
  if (n == -1) {
    perror("read");
  }

  //zatvori datoteku i izađi
  close(fd1);
  exit(0);
}

vjezba4.tgz