table of contents
other languages
other sections
SENDFILE(2) | Manuel du programmeur Linux | SENDFILE(2) |
NOM¶
sendfile - Transfert de données entre descripteurs de fichierSYNOPSIS¶
#include <sys/sendfile.h>DESCRIPTION¶
sendfile() copie des données entre deux descripteurs de fichier. Comme la copie est assurée à l'intérieur du noyau, sendfile() ne perd pas de temps à transférer des données entre l'espace noyau et l'espace utilisateur, et est donc plus efficace que la combinaison read(2)/write(2).VALEUR RENVOYÉE¶
Si le transfert a réussi, le nombre d'octets écrits dans out_fd est renvoyé. Sinon, sendfile() renvoie -1, et errno est configuré.ERREURS¶
- EAGAIN
- L'écriture est non bloquante (attribut O_NONBLOCK du descripteur), et l'opération devrait bloquer.
- EBADF
- Le fichier d'entrée n'est pas ouvert en lecture, ou celui de sortie en écriture.
- EFAULT
- Un pointeur se trouve en dehors de l'espace d'adressage.
- EINVAL
- Le descripteur est invalide ou verrouillé, ou une opération de type mmap(2) n'est pas disponible sur in_fd.
- EIO
- Erreur pendant la lecture depuis in_fd.
- ENOMEM
- Mémoire insuffisante pour lire depuis in_fd.
VERSIONS¶
L'appel système sendfile() est une nouveauté de Linux 2.2. Le fichier d'en-tête <sys/sendfile.h> est présent depuis la glibc 2.1.CONFORMITɶ
Pas spécifié dans POSIX.1-2001, ni dans d'autres normes.NOTES¶
Si vous voulez utiliser sendfile() pour envoyer un fichier au travers d'une socket TCP, tout en le précédant de données d'en-tête, voyez l'option TCP_CORK de tcp(7) pour minimiser le nombre de paquets, et optimiser les performances.VOIR AUSSI¶
mmap(2), open(2), socket(2), splice(2)COLOPHON¶
Cette page fait partie de la publication 3.44 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <http://www.kernel.org/doc/man-pages/>.TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>. Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».14 septembre 2011 | Linux |