sendfile to wywołanie systemowe służące do kopiowania danych z jednego deskryptora pliku do innego. Z uwagi na to, ze operacja ta jest wykonywana w jądrze, jest bardziej wydajna niż kombinacja wywołań read() i write() gdyż nie wymaga przekazywania danych do przestrzeni użytkownika.

Wywołanie sendfile() jest dostępne Linuksie od wersji jądra 2.2, FreeBSD oraz innych systemach uniksowych, jednak z uwagi na różnice w prototypach i znaczeniu argumentów nie należy go stosować w programach, które mają być przenośne.

Prototyp w Linuksie[1]:

ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);

Przypisy edytuj

  1. sendfile - transfer data between file descriptors, Linux Programmer's Manual – System Calls