diff options
Diffstat (limited to '')
-rw-r--r-- | po/fr/man3/fopencookie.3.po | 1568 |
1 files changed, 1568 insertions, 0 deletions
diff --git a/po/fr/man3/fopencookie.3.po b/po/fr/man3/fopencookie.3.po new file mode 100644 index 00000000..4ebe7dae --- /dev/null +++ b/po/fr/man3/fopencookie.3.po @@ -0,0 +1,1568 @@ +# French translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Christophe Blaess <https://www.blaess.fr/christophe/>, 1996-2003. +# Stéphan Rafin <stephan.rafin@laposte.net>, 2002. +# Thierry Vignaud <tvignaud@mandriva.com>, 1999, 2002. +# François Micaux, 2002. +# Alain Portal <aportal@univ-montp2.fr>, 2003-2008. +# Jean-Philippe Guérard <fevrier@tigreraye.org>, 2005-2006. +# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006-2007. +# Julien Cristau <jcristau@debian.org>, 2006-2007. +# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006-2008. +# Nicolas François <nicolas.francois@centraliens.net>, 2006-2008. +# Florentin Duneau <fduneau@gmail.com>, 2006-2010. +# Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006. +# Denis Barbier <barbier@debian.org>, 2006, 2010. +# David Prévot <david@tilapin.org>, 2010-2014. +# Frédéric Hantrais <fhantrais@gmail.com>, 2013, 2014. +# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2024. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n 4.21.0\n" +"POT-Creation-Date: 2024-03-01 16:56+0100\n" +"PO-Revision-Date: 2024-03-14 16:04+0100\n" +"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n" +"Language-Team: French <debian-l10n-french@lists.debian.org>\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 fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-12-29" +msgstr "29 décembre 2023" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Pages du manuel de Linux 6.06" + +#. 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 fedora-40 fedora-rawhide mageia-cauldron +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<libc>, I<-lc>)" +msgstr "Bibliothèque C standard (I<libc>, 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 E<lt>stdio.hE<gt>>\n" +msgstr "" +"B<#define _GNU_SOURCE> /* Consultez feature_test_macros(7) */\n" +"B<#define _FILE_OFFSET_BITS 64>\n" +"B<#include E<lt>stdio.hE<gt>>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<FILE *fopencookie(void *restrict >I<cookie>B<, const char *restrict >I<mode>B<,>\n" +"B< cookie_io_functions_t >I<io_funcs>B<);>\n" +msgstr "" +"B<FILE *fopencookie(void *restrict >I<cookie>B<, const char *restrict >I<mode>B<,>\n" +"B< cookie_io_functions_t >I<io_funcs>B<);>\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<fopencookie>() 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<fopencookie>() is used to implement B<fmemopen>(3), which provides a " +"stream interface to data that is stored in a buffer in memory." +msgstr "" +"La fonction B<fopencookie>() 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<fopencookie>() est utilisée pour implémenter " +"B<fmemopen>(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<void\\~*> when passed to " +"B<fopencookie>()), 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<void\\~*> à B<fopencookie>()) 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<fopencookie>() to open a new stream and associate the cookie and " +"hook functions with that stream." +msgstr "" +"Appeler B<fopencookie>() 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<fopencookie>() function serves a purpose similar to B<fopen>(3): it " +"opens a new stream and returns a pointer to a I<FILE> object that is used to " +"operate on that stream." +msgstr "" +"La fonction B<fopencookie>() effectue une tâche similaire à celle de " +"B<fopen>(3)\\ : elle ouvre un nouveau flux et renvoie un pointeur vers un " +"objet I<FILE> 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<cookie> 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<cookie> 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<mode> argument serves the same purpose as for B<fopen>(3). The " +"following modes are supported: I<r>, I<w>, I<a>, I<r+>, I<w+>, and I<a+>. " +"See B<fopen>(3) for details." +msgstr "" +"L'argument I<mode> a le même sens que pour B<fopen>(3). Les modes suivants " +"sont gérés\\ : I<r>, I<w>, I<a>, I<r+>, I<w+> et I<a+>. Consultez " +"B<fopen>(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<io_funcs> 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<io_funcs> 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<cookie_read_function_t *read>" +msgstr "I<cookie_read_function_t *read>" + +#. 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<buf> and I<size> arguments are, respectively, a buffer into which " +"input data can be placed and the size of that buffer. As its function " +"result, the I<read> function should return the number of bytes copied into " +"I<buf>, 0 on end of file, or -1 on error. The I<read> function should " +"update the stream offset appropriately." +msgstr "" +"Les argument I<buf> et I<size> sont respectivement, un tampon de données " +"pour sauvegarder les données en provenance du flux et la taille du tampon. " +"La fonction I<read> renvoie le nombre d'octets copiés depuis le flux ou -1 " +"en cas d'erreur. La fonction I<read> 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<cookie_write_function_t *write>" +msgstr "I<cookie_write_function_t *write>" + +#. 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<buf> and I<size> 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<write> function should return the number of bytes copied from I<buf>, " +"or 0 on error. (The function must not return a negative value.) The " +"I<write> function should update the stream offset appropriately." +msgstr "" +"Les argument I<buf> et I<size> sont respectivement, un tampon de données à " +"écrire dans le flux et la taille du tampon. La fonction I<write> renvoie le " +"nombre d'octets copiés depuis I<buf> ou 0 en cas d'erreur (la fonction ne " +"doit pas renvoyer de valeur négative). La fonction I<write> 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<cookie_seek_function_t *seek>" +msgstr "I<cookie_seek_function_t *seek>" + +#. 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<whence>:" +msgstr "" +"L'argument I<*offset> spécifie le nouveau décalage du fichier selon les " +"trois valeurs suivantes fournies à I<whence>\\ :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SEEK_SET>" +msgstr "B<SEEK_SET>" + +#. 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<SEEK_CUR>" +msgstr "B<SEEK_CUR>" + +#. 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<SEEK_END>" +msgstr "B<SEEK_END>" + +#. 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<seek> function should update I<*offset> to indicate " +"the new stream offset." +msgstr "" +"La fonction I<seek> 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<seek> function should return 0 on success, and " +"-1 on error." +msgstr "" +"La function I<seek> 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<cookie_close_function_t *close>" +msgstr "I<cookie_close_function_t *close>" + +#. 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<cookie> argument is the cookie that the programmer supplied when " +"calling B<fopencookie>()." +msgstr "" +"L'argument I<cookie> est le cookie que le programmeur fournit à " +"B<fopencookie>()." + +#. 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<close> function should return 0 on success, " +"and B<EOF> on error." +msgstr "" +"La function I<close> devrait renvoyée 0 en cas de succès et B<EOF> 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<fopencookie>() returns a pointer to the new stream. On error, " +"NULL is returned." +msgstr "" +"En cas de succès, B<fopencookie>() 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<attributes>(7)." +msgstr "" +"Pour une explication des termes utilisés dans cette section, consulter " +"B<attributes>(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<fopencookie>()" +msgstr "B<fopencookie>()" + +#. 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<fmemopen>(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<fmemopen>(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 E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/types.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\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-E<gt>offset E<gt> cookie-E<gt>allocated) {\n" +" new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n" +" if (new_buff == NULL)\n" +" return -1;\n" +" cookie-E<gt>allocated *= 2;\n" +" cookie-E<gt>buf = new_buff;\n" +" }\n" +"\\&\n" +" memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n" +"\\&\n" +" cookie-E<gt>offset += size;\n" +" if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n" +" cookie-E<gt>endpos = cookie-E<gt>offset;\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-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n" +" xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n" +" if (xbytes E<lt> 0) /* offset may be past endpos */\n" +" xbytes = 0;\n" +"\\&\n" +" memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n" +"\\&\n" +" cookie-E<gt>offset += 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-E<gt>endpos + *offset;\n" +" else if (whence == SEEK_CUR)\n" +" new_offset = cookie-E<gt>offset + *offset;\n" +" else\n" +" return -1;\n" +"\\&\n" +" if (new_offset E<lt> 0)\n" +" return -1;\n" +"\\&\n" +" cookie-E<gt>offset = 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-E<gt>buf);\n" +" cookie-E<gt>allocated = 0;\n" +" cookie-E<gt>buf = 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<lt> 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 E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/types.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\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-E<gt>offset E<gt> cookie-E<gt>allocated) {\n" +" new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n" +" if (new_buff == NULL)\n" +" return -1;\n" +" cookie-E<gt>allocated *= 2;\n" +" cookie-E<gt>buf = new_buff;\n" +" }\n" +"\\&\n" +" memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n" +"\\&\n" +" cookie-E<gt>offset += size;\n" +" if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n" +" cookie-E<gt>endpos = cookie-E<gt>offset;\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-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n" +" xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n" +" if (xbytes E<lt> 0) /* offset may be past endpos */\n" +" xbytes = 0;\n" +"\\&\n" +" memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n" +"\\&\n" +" cookie-E<gt>offset += 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-E<gt>endpos + *offset;\n" +" else if (whence == SEEK_CUR)\n" +" new_offset = cookie-E<gt>offset + *offset;\n" +" else\n" +" return -1;\n" +"\\&\n" +" if (new_offset E<lt> 0)\n" +" return -1;\n" +"\\&\n" +" cookie-E<gt>offset = 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-E<gt>buf);\n" +" cookie-E<gt>allocated = 0;\n" +" cookie-E<gt>buf = 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<lt> 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<seek> or that takes the address of B<fopencookie>, if the code is intended " +"to be portable to traditional 32-bit x86 and ARM platforms where B<off_t>'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<seek> non NULL ou qui prend l'adresse de B<fopencookie>, si le " +"code est destiné à être portable pour les plateformes traditionelles x86 et " +"ARM 32 bits où la taille par défaut de B<off_t> 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<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(3)" +msgstr "B<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(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 debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +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 E<lt>stdio.hE<gt>>\n" +msgstr "" +"B<#define _GNU_SOURCE> /* Consultez feature_test_macros(7) */\n" +"B<#include E<lt>stdio.hE<gt>>\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 E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/types.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +msgstr "" +"#define _GNU_SOURCE\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/types.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\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-E<gt>offset E<gt> cookie-E<gt>allocated) {\n" +" new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n" +" if (new_buff == NULL)\n" +" return -1;\n" +" cookie-E<gt>allocated *= 2;\n" +" cookie-E<gt>buf = new_buff;\n" +" }\n" +msgstr "" +" while (size + cookie-E<gt>offset E<gt> cookie-E<gt>allocated) {\n" +" new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n" +" if (new_buff == NULL)\n" +" return -1;\n" +" cookie-E<gt>allocated *= 2;\n" +" cookie-E<gt>buf = new_buff;\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n" +msgstr " memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" cookie-E<gt>offset += size;\n" +" if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n" +" cookie-E<gt>endpos = cookie-E<gt>offset;\n" +msgstr "" +" cookie-E<gt>offset += size;\n" +" if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n" +" cookie-E<gt>endpos = cookie-E<gt>offset;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return size;\n" +"}\n" +msgstr "" +" return size;\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"ssize_t\n" +"memfile_read(void *c, char *buf, size_t size)\n" +"{\n" +" ssize_t xbytes;\n" +" struct memfile_cookie *cookie = c;\n" +msgstr "" +"ssize_t\n" +"memfile_read(void *c, char *buf, size_t size)\n" +"{\n" +" ssize_t xbytes;\n" +" struct memfile_cookie *cookie = c;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Fetch minimum of bytes requested and bytes available. */\n" +msgstr " /* Obtenir le minimum d'octets requis et d'octets disponibles. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" xbytes = size;\n" +" if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n" +" xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n" +" if (xbytes E<lt> 0) /* offset may be past endpos */\n" +" xbytes = 0;\n" +msgstr "" +" xbytes = size;\n" +" if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n" +" xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n" +" if (xbytes E<lt> 0) /* offset may be past endpos */\n" +" xbytes = 0;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n" +msgstr " memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" cookie-E<gt>offset += xbytes;\n" +" return xbytes;\n" +"}\n" +msgstr "" +" cookie-E<gt>offset += xbytes;\n" +" return xbytes;\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"memfile_seek(void *c, off64_t *offset, int whence)\n" +"{\n" +" off64_t new_offset;\n" +" struct memfile_cookie *cookie = c;\n" +msgstr "" +"int\n" +"memfile_seek(void *c, off64_t *offset, int whence)\n" +"{\n" +" off64_t new_offset;\n" +" struct memfile_cookie *cookie = c;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (whence == SEEK_SET)\n" +" new_offset = *offset;\n" +" else if (whence == SEEK_END)\n" +" new_offset = cookie-E<gt>endpos + *offset;\n" +" else if (whence == SEEK_CUR)\n" +" new_offset = cookie-E<gt>offset + *offset;\n" +" else\n" +" return -1;\n" +msgstr "" +" if (whence == SEEK_SET)\n" +" new_offset = *offset;\n" +" else if (whence == SEEK_END)\n" +" new_offset = cookie-E<gt>endpos + *offset;\n" +" else if (whence == SEEK_CUR)\n" +" new_offset = cookie-E<gt>offset + *offset;\n" +" else\n" +" return -1;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (new_offset E<lt> 0)\n" +" return -1;\n" +msgstr "" +" if (new_offset E<lt> 0)\n" +" return -1;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" cookie-E<gt>offset = new_offset;\n" +" *offset = new_offset;\n" +" return 0;\n" +"}\n" +msgstr "" +" cookie-E<gt>offset = new_offset;\n" +" *offset = new_offset;\n" +" return 0;\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"memfile_close(void *c)\n" +"{\n" +" struct memfile_cookie *cookie = c;\n" +msgstr "" +"int\n" +"memfile_close(void *c)\n" +"{\n" +" struct memfile_cookie *cookie = c;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" free(cookie-E<gt>buf);\n" +" cookie-E<gt>allocated = 0;\n" +" cookie-E<gt>buf = NULL;\n" +msgstr "" +" free(cookie-E<gt>buf);\n" +" cookie-E<gt>allocated = 0;\n" +" cookie-E<gt>buf = NULL;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return 0;\n" +"}\n" +msgstr "" +" return 0;\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"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" +msgstr "" +"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" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Set up the cookie before calling fopencookie(). */\n" +msgstr " /* Définir le cookie avant l'appel de fopencookie(). */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" mycookie.buf = malloc(INIT_BUF_SIZE);\n" +" if (mycookie.buf == NULL) {\n" +" perror(\"malloc\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" +" mycookie.buf = malloc(INIT_BUF_SIZE);\n" +" if (mycookie.buf == NULL) {\n" +" perror(\"malloc\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" mycookie.allocated = INIT_BUF_SIZE;\n" +" mycookie.offset = 0;\n" +" mycookie.endpos = 0;\n" +msgstr "" +" mycookie.allocated = INIT_BUF_SIZE;\n" +" mycookie.offset = 0;\n" +" mycookie.endpos = 0;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" stream = fopencookie(&mycookie, \"w+\", memfile_func);\n" +" if (stream == NULL) {\n" +" perror(\"fopencookie\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" +" stream = fopencookie(&mycookie, \"w+\", memfile_func);\n" +" if (stream == NULL) {\n" +" perror(\"fopencookie\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Write command-line arguments to our file. */\n" +msgstr " /* Écrire les arguments de la ligne de commande sur le fichier. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" for (size_t j = 1; j E<lt> argc; j++)\n" +" if (fputs(argv[j], stream) == EOF) {\n" +" perror(\"fputs\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" +" for (size_t j = 1; j E<lt> argc; j++)\n" +" if (fputs(argv[j], stream) == EOF) {\n" +" perror(\"fputs\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Read two bytes out of every five, until EOF. */\n" +msgstr " /* Lire deux octets tous les cinq octets jusqu'à EOF. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" 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" +msgstr "" +" 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" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"/%.*s/\\en\", (int) nread, buf);\n" +" }\n" +msgstr "" +" printf(\"/%.*s/\\en\", (int) nread, buf);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " free(mycookie.buf);\n" +msgstr " free(mycookie.buf);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" +" exit(EXIT_SUCCESS);\n" +"}\n" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-20" +msgstr "20 juillet 2023" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Pages du manuel de Linux 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "30 mars 2023" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Pages du manuel de Linux 6.04" |