# 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-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" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " memcpy(cookie-Ebuf + cookie-Eoffset, buf, size);\n" msgstr " memcpy(cookie-Ebuf + cookie-Eoffset, buf, size);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " cookie-Eoffset += size;\n" " if (cookie-Eoffset E cookie-Eendpos)\n" " cookie-Eendpos = cookie-Eoffset;\n" msgstr "" " cookie-Eoffset += size;\n" " if (cookie-Eoffset E cookie-Eendpos)\n" " cookie-Eendpos = cookie-Eoffset;\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-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" msgstr "" " 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" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " memcpy(buf, cookie-Ebuf + cookie-Eoffset, xbytes);\n" msgstr " memcpy(buf, cookie-Ebuf + cookie-Eoffset, xbytes);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " cookie-Eoffset += xbytes;\n" " return xbytes;\n" "}\n" msgstr "" " cookie-Eoffset += 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-Eendpos + *offset;\n" " else if (whence == SEEK_CUR)\n" " new_offset = cookie-Eoffset + *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-Eendpos + *offset;\n" " else if (whence == SEEK_CUR)\n" " new_offset = cookie-Eoffset + *offset;\n" " else\n" " return -1;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (new_offset E 0)\n" " return -1;\n" msgstr "" " if (new_offset E 0)\n" " return -1;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " cookie-Eoffset = new_offset;\n" " *offset = new_offset;\n" " return 0;\n" "}\n" msgstr "" " cookie-Eoffset = 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-Ebuf);\n" " cookie-Eallocated = 0;\n" " cookie-Ebuf = NULL;\n" msgstr "" " free(cookie-Ebuf);\n" " cookie-Eallocated = 0;\n" " cookie-Ebuf = 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 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 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 #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-12-29" msgstr "29 décembre 2023" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Pages du manuel de Linux 6.06" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Pages du manuel de Linux 6.7" #. 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" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr "Pages du manuel de Linux (non publiées)"