# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess , 1996-2003.
# Stéphan Rafin , 2002.
# Thierry Vignaud , 1999, 2002.
# François Micaux, 2002.
# Alain Portal , 2003-2008.
# Jean-Philippe Guérard , 2005-2006.
# Jean-Luc Coulon (f5ibh) , 2006-2007.
# Julien Cristau , 2006-2007.
# Thomas Huriaux , 2006-2008.
# Nicolas François , 2006-2008.
# Florentin Duneau , 2006-2010.
# Simon Paillard , 2006.
# Denis Barbier , 2006, 2010.
# David Prévot , 2010-2014.
# Frédéric Hantrais , 2013, 2014.
# Jean-Pierre Giraud , 2024.
msgid ""
msgstr ""
"Project-Id-Version: manpages-l10n 4.22.0\n"
"POT-Creation-Date: 2024-06-01 05:50+0200\n"
"PO-Revision-Date: 2024-06-02 14:05+0200\n"
"Last-Translator: Jean-Pierre Giraud \n"
"Language-Team: French \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Lokalize 22.12.3\n"
#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "fopencookie"
msgstr "fopencookie"
#. type: TH
#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2024-05-02"
msgstr "2 mai 2024"
#. type: TH
#: archlinux debian-unstable
#, no-wrap
msgid "Linux man-pages 6.8"
msgstr "Pages du manuel de Linux 6.8"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid "fopencookie - open a custom stream"
msgstr "fopencookie – Ouvrir un flux particulier"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LIBRARY"
msgstr "BIBLIOTHÈQUE"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Standard C library (I, I<-lc>)"
msgstr "Bibliothèque C standard (I, I<-lc>)"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
"B<#define _FILE_OFFSET_BITS 64>\n"
"B<#include Estdio.hE>\n"
msgstr ""
"B<#define _GNU_SOURCE> /* Consultez feature_test_macros(7) */\n"
"B<#define _FILE_OFFSET_BITS 64>\n"
"B<#include Estdio.hE>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"BIB<, const char *restrict >IB<,>\n"
"B< cookie_io_functions_t >IB<);>\n"
msgstr ""
"BIB<, const char *restrict >IB<,>\n"
"B< cookie_io_functions_t >IB<);>\n"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The B() function allows the programmer to create a custom "
"implementation for a standard I/O stream. This implementation can store the "
"stream's data at a location of its own choosing; for example, "
"B() is used to implement B(3), which provides a "
"stream interface to data that is stored in a buffer in memory."
msgstr ""
"La fonction B() permet au programmeur de créer des "
"implémentations particulières de flux d'entrées-sorties. Cette "
"implémentation peut sauvegarder les flux de données dans une location "
"choisie. Par exemple, B() est utilisée pour implémenter "
"B(3), qui fournit une interface qui sauvegarde les flux de données "
"dans un tampon en mémoire."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "In order to create a custom stream the programmer must:"
msgstr "Pour créer un flux particulier, le programmeur doit\\ :"
#. type: IP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "\\[bu]"
msgstr "-"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Implement four \"hook\" functions that are used internally by the standard I/"
"O library when performing I/O on the stream."
msgstr ""
"Implémenter quatre fonctions de «\\ hook\\ » qui seront utilisées en interne "
"par la bibliothèque standard d'entrées-sorties lors d'opération d'E/S."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Define a \"cookie\" data type, a structure that provides bookkeeping "
"information (e.g., where to store data) used by the aforementioned hook "
"functions. The standard I/O package knows nothing about the contents of "
"this cookie (thus it is typed as I when passed to "
"B()), but automatically supplies the cookie as the first "
"argument when calling the hook functions."
msgstr ""
"Définit un type de données «\\ cookie\\ », une structure permettant de "
"sauvegarder des informations (par exemple, où sauvegarder les données) "
"utilisée par les fonctions de hook. Les fonctions E/S standards ne "
"connaissent rien à propos du contenu de ce cookie (il est passé comme un "
"type I à B()) et celui-ci est automatiquement passé "
"en premier argument des fonctions de hook."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Call B() to open a new stream and associate the cookie and "
"hook functions with that stream."
msgstr ""
"Appeler B() pour ouvrir un nouveau flux et associer le cookie "
"et les fonctions de «\\ hook\\ » à ce flux."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The B() function serves a purpose similar to B(3): it "
"opens a new stream and returns a pointer to a I object that is used to "
"operate on that stream."
msgstr ""
"La fonction B() effectue une tâche similaire à celle de "
"B(3)\\ : elle ouvre un nouveau flux et renvoie un pointeur vers un "
"objet I utilisé pour manipuler le flux."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument is a pointer to the caller's cookie structure that is "
"to be associated with the new stream. This pointer is supplied as the first "
"argument when the standard I/O library invokes any of the hook functions "
"described below."
msgstr ""
"L'argument I est un pointeur vers la structure cookie appelante qui "
"est associée au nouveau flux. Ce pointeur est passé en premier argument "
"lorsque les bibliothèques d'E/S standard appellent une des fonctions de hook."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument serves the same purpose as for B(3). The "
"following modes are supported: I, I, I, I, I, and I. "
"See B(3) for details."
msgstr ""
"L'argument I a le même sens que pour B(3). Les modes suivants "
"sont gérés\\ : I, I, I, I, I et I. Consultez "
"B(3) pour plus de détails."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument is a structure that contains four fields pointing "
"to the programmer-defined hook functions that are used to implement this "
"stream. The structure is defined as follows"
msgstr ""
"L'argument I est une structure qui contient quatre champs pointant "
"vers les fonctions de «\\ hook\\ » définies par le programmeur qui seront "
"utilisées dans l'implémentation du flux. La structure est définie comme "
"suit\\ :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"typedef struct {\n"
" cookie_read_function_t *read;\n"
" cookie_write_function_t *write;\n"
" cookie_seek_function_t *seek;\n"
" cookie_close_function_t *close;\n"
"} cookie_io_functions_t;\n"
msgstr ""
"typedef struct {\n"
" cookie_read_function_t *read;\n"
" cookie_write_function_t *write;\n"
" cookie_seek_function_t *seek;\n"
" cookie_close_function_t *close;\n"
"} cookie_io_functions_t;\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The four fields are as follows:"
msgstr "Les quatre membres sont définis comme suit\\ :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This function implements read operations for the stream. When called, it "
"receives three arguments:"
msgstr ""
"Cette fonction implémente les opérations de lecture du flux. Lorsqu'elle est "
"appelée, elle reçoit trois arguments."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ssize_t read(void *cookie, char *buf, size_t size);\n"
msgstr "ssize_t read(void *cookie, char *buf, size_t size);\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I and I arguments are, respectively, a buffer into which "
"input data can be placed and the size of that buffer. As its function "
"result, the I function should return the number of bytes copied into "
"I, 0 on end of file, or -1 on error. The I function should "
"update the stream offset appropriately."
msgstr ""
"Les argument I et I sont respectivement, un tampon de données "
"pour sauvegarder les données en provenance du flux et la taille du tampon. "
"La fonction I renvoie le nombre d'octets copiés depuis le flux ou -1 "
"en cas d'erreur. La fonction I doit mettre à jour la position dans le "
"flux en conséquence."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If I<*read> is a null pointer, then reads from the custom stream always "
"return end of file."
msgstr ""
"Si I<*read> est un pointeur NULL, alors les lectures du flux renvoient "
"toujours fin de fichier."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This function implements write operations for the stream. When called, it "
"receives three arguments:"
msgstr ""
"Cette fonction implémente les opérations d'écriture du flux. Lorsqu'elle est "
"appelée, elle reçoit trois arguments\\ :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ssize_t write(void *cookie, const char *buf, size_t size);\n"
msgstr "ssize_t write(void *cookie, const char *buf, size_t size);\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I and I arguments are, respectively, a buffer of data to be "
"output to the stream and the size of that buffer. As its function result, "
"the I function should return the number of bytes copied from I, "
"or 0 on error. (The function must not return a negative value.) The "
"I function should update the stream offset appropriately."
msgstr ""
"Les argument I et I sont respectivement, un tampon de données à "
"écrire dans le flux et la taille du tampon. La fonction I renvoie le "
"nombre d'octets copiés depuis I ou 0 en cas d'erreur (la fonction ne "
"doit pas renvoyer de valeur négative). La fonction I doit mettre à "
"jour la position dans le flux en conséquence."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "If I<*write> is a null pointer, then output to the stream is discarded."
msgstr ""
"Si I<*write> est un pointeur NULL, alors les écritures dans le flux ne sont "
"pas réalisées."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This function implements seek operations on the stream. When called, it "
"receives three arguments:"
msgstr ""
"Cette fonction implémente les opérations de positionnement dans le flux. "
"Lorsqu'elle est appelée, elle prend trois arguments\\ :"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid "int seek(void *cookie, off_t *offset, int whence);\n"
msgstr "int seek(void *cookie, off_t *offset, int whence);\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I<*offset> argument specifies the new file offset depending on which of "
"the following three values is supplied in I:"
msgstr ""
"L'argument I<*offset> spécifie le nouveau décalage du fichier selon les "
"trois valeurs suivantes fournies à I\\ :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The stream offset should be set I<*offset> bytes from the start of the "
"stream."
msgstr ""
"Le décalage du flux doit être défini à I<*offset> octets après le début du "
"flux."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "I<*offset> should be added to the current stream offset."
msgstr "I<*offset> doit être ajouté à l'offset actuel du flux."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The stream offset should be set to the size of the stream plus I<*offset>."
msgstr "L'offset du flux doit être défini à la taille du flux plus I<*offset>."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Before returning, the I function should update I<*offset> to indicate "
"the new stream offset."
msgstr ""
"La fonction I doit mettre à jour I<*offset> pour indiquer le nouvel "
"offset du flux avant de renvoyer."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"As its function result, the I function should return 0 on success, and "
"-1 on error."
msgstr ""
"La function I devrait renvoyer B<0> en cas de succès et B<-1> en cas "
"d'erreur."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If I<*seek> is a null pointer, then it is not possible to perform seek "
"operations on the stream."
msgstr ""
"Si I<*seek> est un pointeur NULL, alors il est impossible de se positionner "
"dans le flux."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "I"
msgstr "I"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This function closes the stream. The hook function can do things such as "
"freeing buffers allocated for the stream. When called, it receives one "
"argument:"
msgstr ""
"Cette fonction ferme le flux. Par exemple, la fonction de hook peut "
"désallouer des tampons alloués pour le flux. Lorsqu'elle est appelée, elle "
"prend un argument\\ :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "int close(void *cookie);\n"
msgstr "int close(void *cookie);\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument is the cookie that the programmer supplied when "
"calling B()."
msgstr ""
"L'argument I est le cookie que le programmeur fournit à "
"B()."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"As its function result, the I function should return 0 on success, "
"and B on error."
msgstr ""
"La function I devrait renvoyée 0 en cas de succès et B en cas "
"d'erreur."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If I<*close> is NULL, then no special action is performed when the stream is "
"closed."
msgstr ""
"Si I<*close> est NULL, alors aucune action n'est réalisée lorsque le flux "
"est fermé."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "RETURN VALUE"
msgstr "VALEUR RENVOYÉE"
#. .SH ERRORS
#. It's not clear if errno ever gets set...
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"On success B() returns a pointer to the new stream. On error, "
"NULL is returned."
msgstr ""
"En cas de succès, B() renvoie un pointeur sur le nouveau flux. "
"En cas d'erreur, NULL est renvoyé."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ATTRIBUTES"
msgstr "ATTRIBUTS"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"For an explanation of the terms used in this section, see B(7)."
msgstr ""
"Pour une explication des termes utilisés dans cette section, consulter "
"B(7)."
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Interface"
msgstr "Interface"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Attribute"
msgstr "Attribut"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Value"
msgstr "Valeur"
#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ".na\n"
msgstr ".na\n"
#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ".nh\n"
msgstr ".nh\n"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B()"
msgstr "B()"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Thread safety"
msgstr "Sécurité des threads"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "MT-Safe"
msgstr "MT-Safe"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "STANDARDS"
msgstr "STANDARDS"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "GNU."
msgstr "GNU."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The program below implements a custom stream whose functionality is similar "
"(but not identical) to that available via B(3). It implements a "
"stream whose data is stored in a memory buffer. The program writes its "
"command-line arguments to the stream, and then seeks through the stream "
"reading two out of every five characters and writing them to standard "
"output. The following shell session demonstrates the use of the program:"
msgstr ""
"Le programme ci-dessous implémente un flux particulier dont la "
"fonctionnalité est similaire (mais non identique) à celle de B(3). "
"Il implémente un flux dont les données sont sauvegardées dans un tampon. Le "
"programme écrit les options de sa ligne de commande dans le flux et se "
"positionne dans le flux afin de lire 2 caractères sur 5 et les écrit sur la "
"sortie standard. La session shell suivante explique comment utiliser ce "
"programme."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"$B< ./a.out \\[aq]hello world\\[aq]>\n"
"/he/\n"
"/ w/\n"
"/d/\n"
"Reached end of file\n"
msgstr ""
"$B< ./a.out \\[aq]hello world\\[aq]>\n"
"/he/\n"
"/ w/\n"
"/d/\n"
"Fin de fichier atteinte\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Note that a more general version of the program below could be improved to "
"more robustly handle various error situations (e.g., opening a stream with a "
"cookie that already has an open stream; closing a stream that has already "
"been closed)."
msgstr ""
"Notez qu'une version plus générique et plus robuste du programme ci-dessous, "
"avec une gestion des erreurs pourrait être implémenté (par exemple, "
"l'ouverture d'un flux avec un cookie en cours d'utilisation par un autre "
"flux\\ ; la fermeture d'un flux déjà fermé)."
#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Program source"
msgstr "Source du programme"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Estring.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
"\\&\n"
"#define INIT_BUF_SIZE 4\n"
"\\&\n"
"struct memfile_cookie {\n"
" char *buf; /* Dynamically sized buffer for data */\n"
" size_t allocated; /* Size of buf */\n"
" size_t endpos; /* Number of characters in buf */\n"
" off_t offset; /* Current file offset in buf */\n"
"};\n"
"\\&\n"
"ssize_t\n"
"memfile_write(void *c, const char *buf, size_t size)\n"
"{\n"
" char *new_buff;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" /* Buffer too small? Keep doubling size until big enough. */\n"
"\\&\n"
" while (size + cookie-Eoffset E cookie-Eallocated) {\n"
" new_buff = realloc(cookie-Ebuf, cookie-Eallocated * 2);\n"
" if (new_buff == NULL)\n"
" return -1;\n"
" cookie-Eallocated *= 2;\n"
" cookie-Ebuf = new_buff;\n"
" }\n"
"\\&\n"
" memcpy(cookie-Ebuf + cookie-Eoffset, buf, size);\n"
"\\&\n"
" cookie-Eoffset += size;\n"
" if (cookie-Eoffset E cookie-Eendpos)\n"
" cookie-Eendpos = cookie-Eoffset;\n"
"\\&\n"
" return size;\n"
"}\n"
"\\&\n"
"ssize_t\n"
"memfile_read(void *c, char *buf, size_t size)\n"
"{\n"
" ssize_t xbytes;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" /* Fetch minimum of bytes requested and bytes available. */\n"
"\\&\n"
" xbytes = size;\n"
" if (cookie-Eoffset + size E cookie-Eendpos)\n"
" xbytes = cookie-Eendpos - cookie-Eoffset;\n"
" if (xbytes E 0) /* offset may be past endpos */\n"
" xbytes = 0;\n"
"\\&\n"
" memcpy(buf, cookie-Ebuf + cookie-Eoffset, xbytes);\n"
"\\&\n"
" cookie-Eoffset += xbytes;\n"
" return xbytes;\n"
"}\n"
"\\&\n"
"int\n"
"memfile_seek(void *c, off_t *offset, int whence)\n"
"{\n"
" off_t new_offset;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" if (whence == SEEK_SET)\n"
" new_offset = *offset;\n"
" else if (whence == SEEK_END)\n"
" new_offset = cookie-Eendpos + *offset;\n"
" else if (whence == SEEK_CUR)\n"
" new_offset = cookie-Eoffset + *offset;\n"
" else\n"
" return -1;\n"
"\\&\n"
" if (new_offset E 0)\n"
" return -1;\n"
"\\&\n"
" cookie-Eoffset = new_offset;\n"
" *offset = new_offset;\n"
" return 0;\n"
"}\n"
"\\&\n"
"int\n"
"memfile_close(void *c)\n"
"{\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" free(cookie-Ebuf);\n"
" cookie-Eallocated = 0;\n"
" cookie-Ebuf = NULL;\n"
"\\&\n"
" return 0;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" cookie_io_functions_t memfile_func = {\n"
" .read = memfile_read,\n"
" .write = memfile_write,\n"
" .seek = memfile_seek,\n"
" .close = memfile_close\n"
" };\n"
" FILE *stream;\n"
" struct memfile_cookie mycookie;\n"
" size_t nread;\n"
" char buf[1000];\n"
"\\&\n"
" /* Set up the cookie before calling fopencookie(). */\n"
"\\&\n"
" mycookie.buf = malloc(INIT_BUF_SIZE);\n"
" if (mycookie.buf == NULL) {\n"
" perror(\"malloc\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" mycookie.allocated = INIT_BUF_SIZE;\n"
" mycookie.offset = 0;\n"
" mycookie.endpos = 0;\n"
"\\&\n"
" stream = fopencookie(&mycookie, \"w+\", memfile_func);\n"
" if (stream == NULL) {\n"
" perror(\"fopencookie\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" /* Write command-line arguments to our file. */\n"
"\\&\n"
" for (size_t j = 1; j E argc; j++)\n"
" if (fputs(argv[j], stream) == EOF) {\n"
" perror(\"fputs\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" /* Read two bytes out of every five, until EOF. */\n"
"\\&\n"
" for (long p = 0; ; p += 5) {\n"
" if (fseek(stream, p, SEEK_SET) == -1) {\n"
" perror(\"fseek\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
" nread = fread(buf, 1, 2, stream);\n"
" if (nread == 0) {\n"
" if (ferror(stream) != 0) {\n"
" fprintf(stderr, \"fread failed\\en\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
" printf(\"Reached end of file\\en\");\n"
" break;\n"
" }\n"
"\\&\n"
" printf(\"/%.*s/\\en\", (int) nread, buf);\n"
" }\n"
"\\&\n"
" free(mycookie.buf);\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Estring.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
"\\&\n"
"#define INIT_BUF_SIZE 4\n"
"\\&\n"
"struct memfile_cookie {\n"
" char *buf; /* Tampon de taille dynamique pour les données */\n"
" size_t allocated; /* Taille du tampon */\n"
" size_t endpos; /* Nombre de caractères dans le tampon */\n"
" off_t offset; /* Décalage du fichier actuel dans le tampon */\n"
"};\n"
"\\&\n"
"ssize_t\n"
"memfile_write(void *c, const char *buf, size_t size)\n"
"{\n"
" char *new_buff;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" /* Tampon trop petit : doubler sa taille jusqu'à ce\n"
" qu'il soit assez grand. */\n"
"\\&\n"
" while (size + cookie-Eoffset E cookie-Eallocated) {\n"
" new_buff = realloc(cookie-Ebuf, cookie-Eallocated * 2);\n"
" if (new_buff == NULL)\n"
" return -1;\n"
" cookie-Eallocated *= 2;\n"
" cookie-Ebuf = new_buff;\n"
" }\n"
"\\&\n"
" memcpy(cookie-Ebuf + cookie-Eoffset, buf, size);\n"
"\\&\n"
" cookie-Eoffset += size;\n"
" if (cookie-Eoffset E cookie-Eendpos)\n"
" cookie-Eendpos = cookie-Eoffset;\n"
"\\&\n"
" return size;\n"
"}\n"
"\\&\n"
"ssize_t\n"
"memfile_read(void *c, char *buf, size_t size)\n"
"{\n"
" ssize_t xbytes;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" /* Obtenir le minimum d'octets requis et d'octets disponibles. */\n"
"\\&\n"
" xbytes = size;\n"
" if (cookie-Eoffset + size E cookie-Eendpos)\n"
" xbytes = cookie-Eendpos - cookie-Eoffset;\n"
" if (xbytes E 0) /* offset may be past endpos */\n"
" xbytes = 0;\n"
"\\&\n"
" memcpy(buf, cookie-Ebuf + cookie-Eoffset, xbytes);\n"
"\\&\n"
" cookie-Eoffset += xbytes;\n"
" return xbytes;\n"
"}\n"
"\\&\n"
"int\n"
"memfile_seek(void *c, off_t *offset, int whence)\n"
"{\n"
" off_t new_offset;\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" if (whence == SEEK_SET)\n"
" new_offset = *offset;\n"
" else if (whence == SEEK_END)\n"
" new_offset = cookie-Eendpos + *offset;\n"
" else if (whence == SEEK_CUR)\n"
" new_offset = cookie-Eoffset + *offset;\n"
" else\n"
" return -1;\n"
"\\&\n"
" if (new_offset E 0)\n"
" return -1;\n"
"\\&\n"
" cookie-Eoffset = new_offset;\n"
" *offset = new_offset;\n"
" return 0;\n"
"}\n"
"\\&\n"
"int\n"
"memfile_close(void *c)\n"
"{\n"
" struct memfile_cookie *cookie = c;\n"
"\\&\n"
" free(cookie-Ebuf);\n"
" cookie-Eallocated = 0;\n"
" cookie-Ebuf = NULL;\n"
"\\&\n"
" return 0;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" cookie_io_functions_t memfile_func = {\n"
" .read = memfile_read,\n"
" .write = memfile_write,\n"
" .seek = memfile_seek,\n"
" .close = memfile_close\n"
" };\n"
" FILE *stream;\n"
" struct memfile_cookie mycookie;\n"
" size_t nread;\n"
" char buf[1000];\n"
"\\&\n"
" /* Définir le cookie avant l'appel de fopencookie(). */\n"
"\\&\n"
" mycookie.buf = malloc(INIT_BUF_SIZE);\n"
" if (mycookie.buf == NULL) {\n"
" perror(\"malloc\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" mycookie.allocated = INIT_BUF_SIZE;\n"
" mycookie.offset = 0;\n"
" mycookie.endpos = 0;\n"
"\\&\n"
" stream = fopencookie(&mycookie, \"w+\", memfile_func);\n"
" if (stream == NULL) {\n"
" perror(\"fopencookie\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" /* Écrire les arguments de la ligne de commande sur le fichier. */\n"
"\\&\n"
" for (size_t j = 1; j E argc; j++)\n"
" if (fputs(argv[j], stream) == EOF) {\n"
" perror(\"fputs\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
"\\&\n"
" /* Lire deux octets tous les cinq octets jusqu'à EOF. */\n"
"\\&\n"
" for (long p = 0; ; p += 5) {\n"
" if (fseek(stream, p, SEEK_SET) == -1) {\n"
" perror(\"fseek\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
" nread = fread(buf, 1, 2, stream);\n"
" if (nread == 0) {\n"
" if (ferror(stream) != 0) {\n"
" fprintf(stderr, \"échec fread\\en\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
" printf(\"Fin de fichier atteinte\\en\");\n"
" break;\n"
" }\n"
"\\&\n"
" printf(\"/%.*s/\\en\", (int) nread, buf);\n"
" }\n"
"\\&\n"
" free(mycookie.buf);\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. SRC END
#. type: SH
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"B<_FILE_OFFSET_BITS> should be defined to be 64 in code that uses non-null "
"I or that takes the address of B, if the code is intended "
"to be portable to traditional 32-bit x86 and ARM platforms where B's "
"width defaults to 32 bits."
msgstr ""
"B<_FILE_OFFSET_BITS> devrait être défini à 64 dans du code qui utilise une "
"valeur de I non NULL ou qui prend l'adresse de B, si le "
"code est destiné à être portable pour les plateformes traditionelles x86 et "
"ARM 32 bits où la taille par défaut de B est 32 bits."
#. #-#-#-#-# archlinux: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#. #-#-#-#-# debian-bookworm: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. SRC END
#. type: SH
#. #-#-#-#-# debian-unstable: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#. #-#-#-#-# fedora-40: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#. #-#-#-#-# fedora-rawhide: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#. #-#-#-#-# mageia-cauldron: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#. #-#-#-#-# opensuse-leap-15-6: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. SRC END
#. type: SH
#. #-#-#-#-# opensuse-tumbleweed: fopencookie.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B(3), B(3), B(3), B(3)"
msgstr "B(3), B(3), B(3), B(3)"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "2023-02-05"
msgstr "5 février 2023"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "Linux man-pages 6.03"
msgstr "Pages du manuel de Linux 6.03"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
msgid "fopencookie - opening a custom stream"
msgstr "fopencookie - Ouvrir un flux particulier"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
"B<#include Estdio.hE>\n"
msgstr ""
"B<#define _GNU_SOURCE> /* Consultez feature_test_macros(7) */\n"
"B<#include Estdio.hE>\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "int seek(void *cookie, off64_t *offset, int whence);\n"
msgstr "int seek(void *cookie, off64_t *offset, int whence);\n"
#. type: Plain text
#: debian-bookworm
msgid "This function is a nonstandard GNU extension."
msgstr "Cette fonction est une extension GNU non standard."
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Estring.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Estring.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "#define INIT_BUF_SIZE 4\n"
msgstr "#define INIT_BUF_SIZE 4\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"struct memfile_cookie {\n"
" char *buf; /* Dynamically sized buffer for data */\n"
" size_t allocated; /* Size of buf */\n"
" size_t endpos; /* Number of characters in buf */\n"
" off_t offset; /* Current file offset in buf */\n"
"};\n"
msgstr ""
"struct memfile_cookie {\n"
" char *buf; /* Tampon de taille dynamique pour les données */\n"
" size_t allocated; /* Taille du tampon */\n"
" size_t endpos; /* Nombre de caractères dans le tampon */\n"
" off_t offset; /* Décalage du fichier actuel dans le tampon */\n"
"};\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"ssize_t\n"
"memfile_write(void *c, const char *buf, size_t size)\n"
"{\n"
" char *new_buff;\n"
" struct memfile_cookie *cookie = c;\n"
msgstr ""
"ssize_t\n"
"memfile_write(void *c, const char *buf, size_t size)\n"
"{\n"
" char *new_buff;\n"
" struct memfile_cookie *cookie = c;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " /* Buffer too small? Keep doubling size until big enough. */\n"
msgstr ""
" /* Tampon trop petit : doubler sa taille jusqu'à ce\n"
" qu'il soit assez grand. */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" while (size + cookie-Eoffset E cookie-Eallocated) {\n"
" new_buff = realloc(cookie-Ebuf, cookie-Eallocated * 2);\n"
" if (new_buff == NULL)\n"
" return -1;\n"
" cookie-Eallocated *= 2;\n"
" cookie-Ebuf = new_buff;\n"
" }\n"
msgstr ""
" while (size + cookie-E