Ponieważ dane nie wędrują przez pamięć procesu, można podawać „absurdalne” wartości typu (jak wyżej) 64 megabajty i kernel dobrze sobie z nimi radzi. Powyższy program kopiuje plik 32219641-bajtowy (linux-2.4.19.tar.gz) prawie dwukrotnie szybciej niż cat (który robi to 4-kilobajtowymi odwołaniami read i write), czy standardowy cp (niektóre nowsze wersje używają mmap lub sendfile).

Ciekawa część wyników strace to:

open("/home/username/linux-2.4.19.tar.gz", O_RDONLY) = 3 open("/home2/username/linux-kopia", O_WRONLY|O_CREAT, 0666) = 5 sendfile(5, 3, , 67108864) = 32219641 sendfile(5, 3, [32219641], 67108864) = 0 _exit(0) = ?

Sprawdzanie uprawnień Zdefiniowane w unistd.h wywołanie: int access(const char *pathname, int mode); służy do sprawdzenia praw do pliku pathname.

Tryb to maska złożona z: R_OK – plik można czytać W_OK – do pliku można pisać X_OK – plik jest wykonywalny F_OK – plik istnieje

Semantyka wywołania access nie jest jednak prosta.

access patrzy się jedynie na uprawnienia, nie na rzeczywiste możliwości, tak więc: jeśli system jest zamontowany read only, access pokaże W_OK zależnie od uprawnień, choć nie można na nim pisać