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);
}