.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the American National Standards Committee X3, on Information .\" Processing Systems. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)setbuf.3 6.10 (Berkeley) 6/29/91 .\" .\" Converted for Linux, Mon Nov 29 14:55:24 1993, faith@cs.unc.edu .\" Added section to BUGS, Sun Mar 12 22:28:33 MET 1995, .\" Thomas.Koenig@ciw.uni-karlsruhe.de .\" Correction, Sun, 11 Apr 1999 15:55:18, .\" Martin Vicente .\" Correction, 2000-03-03, Andreas Jaeger .\" Added return value for setvbuf, aeb, .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setbuf 3 "20. Juli 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG setbuf, setbuffer, setlinebuf, setvbuf \- Pufferaktionen für Streams .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint setvbuf(FILE *restrict \fP\fIdatenstrom\fP\fB, char \fP\fIPuffer\fP\fB[restrict .\fP\fIgroesse\fP\fB],\fP \fB int \fP\fIModus\fP\fB, size_t \fP\fIgroesse\fP\fB);\fP .PP \fBvoid setbuf(FILE *restrict \fP\fIdatenstrom\fP\fB, char *restrict \fP\fIPuffer\fP\fB);\fP \fBvoid setbuffer(FILE *restrict \fP\fIdatenstrom\fP\fB, char \fP\fIbuf\fP\fB[restrict .\fP\fIgroesse\fP\fB],\fP \fB size_t \fP\fIgroesse\fP\fB);\fP \fBvoid setlinebuf(FILE *\fP\fIdatenstrom\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP \fBsetbuffer\fP(), \fBsetlinebuf\fP(): .nf Seit Glibc 2.19: _DEFAULT_SOURCE Glibc 2.19 und älter: _BSD_SOURCE .fi .SH BESCHREIBUNG Die drei verfügbaren Typen von Pufferungen sind nicht gepuffert, block\-gepuffert und zeilen\-gepuffert. Wenn ein Ausgabe\-Stream nicht gepuffert ist, erscheinen die Informationen in der Zieldatei oder auf dem Terminal direkt nachdem sie geschrieben wurden. Wenn die Ausgabe block\-gepuffert ist, werden viele Zeichen erst einmal gesammelt und dann in einem Rutsch ausgegeben. Wenn die Ausgabe zeilen\-gepuffert ist, werden die Zeichen bis zu einem Zeilenvorschub\-Zeichen gesammelt und erst dann ausgegeben, oder Eingaben wurden von einem beliebigen Datenstrom gelesen, der mit einem Endgerät verbunden ist (üblicherweise \fIstdin\fP). Die Funktion \fBfflush\fP(3) darf dazu verwendet werden, ein frühes Leeren des Puffers zu erzwingen (siehe auch \fBfclose\fP(3)). .PP Normalerweise sind alle Dateien block\-gepuffert. Wenn ein Datenstrom mit einem Terminal verbunden ist (wie bei \fIstdout\fP normalerweise der Fall), ist er zeilen\-gepuffert. Der Standardfehlerstrom (\fIstderr\fP) ist standardmäßig immer nicht gepuffert. .PP Die Funktion \fBsetvbuf\fP() wird genutzt, um zu jedem beliebigen Zeitpunkt die Pufferung eines geöffneten Streams zu ändern. Als Parameter \fIModus\fP wird eine der drei folgenden Konstanten verwendet: .RS .TP \fB_IONBF\fP nicht gepuffert .TP \fB_IOLBF\fP Zeilenpufferung .TP \fB_IOFBF\fP voll gepuffert .RE .PP Mit Ausnahme von ungepufferten Dateien sollte mit dem Argument \fIPuffer\fP ein Zeiger auf einen Puffer angegeben werden, der mindestens \fIgroesse\fP Byte groß ist. Dieser Puffer wird anstelle des aktuellen Puffers verwendet. Wenn für \fIPuffer\fP \fBNULL\fP angegeben wird, ist nur der Modus betroffen; bei der nächsten Schreib\- oder Leseaktion wird ein neuer Puffer reserviert. Die Funktion \fIsetvbuf\fP() darf nur dann angewendet werden, nachdem ein Stream geöffnet wurde und bevor irgendwelche anderen Aktionen darauf ausgeführt wurden. .PP Die anderen drei Funktionen sind im Endeffekt einfache Aliase für Aufrufe von \fBsetvbuf\fP(). Die Funktion \fBsetbuf\fP() entspricht genau dem folgendem Aufruf: .PP .in +4n setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ); .in .PP Die Funktion \fBsetbuffer\fP() ist die gleiche, bis auf die Tatsache, dass die Größe des Puffers vom Aufrufer bestimmt anstatt von der Voreinstellung \fBBUFSIZ\fP übernommen wird. Die Funktion \fBsetlinebuf\fP() entspricht genau dem folgendem Aufruf: .PP .in +4n setvbuf(stream, NULL, _IOLBF, 0); .in .SH RÜCKGABEWERT Die Funktion \fBsetvbuf\fP() gibt bei Erfolg 0 zurück. Sie gibt im Fehlerfall (\fIModus\fP ist ungültig oder der Anfrage kann nicht genügt werden) ungleich Null zurück und darf dann \fIerrno\fP setzen. .PP Die anderen Funktionen liefern keinen Wert zurück. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBsetbuf\fP(), \fBsetbuffer\fP(), \fBsetlinebuf\fP(), \fBsetvbuf\fP() T} Multithread\-Fähigkeit MT\-Sicher .TE .sp 1 .SH STANDARDS .TP \fBsetbuf\fP() .TQ \fBsetvbuf\fP() C11, POSIX.1\-2008. .SH GESCHICHTE .TP \fBsetbuf\fP() .TQ \fBsetvbuf\fP() C89, POSIX.1\-2001. .SH WARNUNGEN .\" https://www.austingroupbugs.net/view.php?id=397#c799 .\" 0000397: setbuf and errno POSIX vermerkt, dass der Wert von \fIerrno\fP nach einem Aufruf von \fBsetbuf\fP() nicht spezifiziert ist und merkt weiterhin an, dass Anwendungen stattdessen \fBsetvbuf\fP() verwenden sollten, um Fehler zu erkennen, da der Wert von \fIerrno\fP sich nach einem erfolgreichen Aufruf von \fBsetbuf\fP() nicht verändert haben muss. .SH FEHLER .\" The .\" .BR setbuffer () .\" and .\" .BR setlinebuf () .\" functions are not portable to versions of BSD before 4.2BSD, and .\" are available under Linux since libc 4.5.21. .\" On 4.2BSD and 4.3BSD systems, .\" .BR setbuf () .\" always uses a suboptimal buffer size and should be avoided. .\".PP Sie müssen sicherstellen, dass der \fIPuffer\fP zu dem Zeitpunkt, zu dem der Stream \fIdatenstrom\fP geschlossen wird, noch existiert, was ebenfalls bei Programmende geschieht. .PP .\" [[invalid]] SRC BEGIN (setbuf.c) .EX #include \& int main(void) { char buf[BUFSIZ]; \& setbuf(stdout, buf); printf("Hello, world!\en"); return 0; } .EE .\" SRC END .SH "SIEHE AUCH" \fBstdbuf\fP(1), \fBfclose\fP(3), \fBfflush\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBmalloc\fP(3), \fBprintf\fP(3), \fBputs\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer , Helge Kreutzmann und Mario Blättermann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .