.\" -*- coding: UTF-8 -*- .\" Copyright 2006, Jens Axboe .\" Copyright 2006, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH tee 2 "8. februar 2026" "Linux man\-pages 6.17" .SH NAVN tee \- duplikere datakanalindhold .SH BIBLIOTEK Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH SYNOPSIS .nf \fB#define _GNU_SOURCE\fP /* Se feature_test_macros(7) */ \fB#include \fP .P \fBssize_t tee(int \fP\fIfd_in\fP\fB, int \fP\fIfd_out\fP\fB, size_t \fP\fIsize\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP .fi .\" Return type was long before glibc 2.7 .SH BESKRIVELSE .\" Example programs http://brick.kernel.dk/snaps .\" .\" .\" add a "tee(in, out1, out2)" system call that duplicates the pages .\" (again, incrementing their reference count, not copying the data) from .\" one pipe to two other pipes. \fBtee\fP() duplikerer op til \fIsize\fP databyte fra datakanalen refereret til af fildeskriptoren \fIfd_in\fP til datakanalen refereret til af fildeskriptoren \fIfd_out\fP. Forbruger ikke dataene der er duplikeret fra \fIfd_in\fP; dataene kan derfor efterfølgende kopieres af en \fBsplice\fP(2). .P \fIflag\fP er en bit\-maske der er sammensat af at ORing'e sammen nul eller flere af de følgende værdier: .TP 1.9i \fBSPLICE_F_MOVE\fP Har i øjeblikket ingen effekt for \fBtee\fP(); se \fBsplice\fP(2). .TP \fBSPLICE_F_NONBLOCK\fP Bloker ikke en I/O; se \fBsplice\fP(2) for yderligere detaljer. .TP \fBSPLICE_F_MORE\fP Har i øjeblikket ingen effekt for \fBtee\fP(), men kan blive implementeret i fremtiden; se \fBsplice\fP(2). .TP \fBSPLICE_F_GIFT\fP Ubrugt for \fBtee\fP(); se \fBvmsplice\fP(2). .SH RETURVÆRDI Ved succesfuld fuldførelse returnerer \fBtee\fP() antallet af byte, der blev duplikeret mellem inddata og uddata. En returværdi på 0 betyder at der ingen data var at overføre, og det ville give mening at blokere, da der ingen skrivere er forbundet til skriveslutningen af datakanalen refereret til af \fIfd_in\fP. .P Ved fejl returnerer \fBtee\fP() \-1 og \fIerrno\fP angives for at indikere fejlen. .SH FEJL .TP \fBEAGAIN\fP \fBSPLICE_F_NONBLOCK\fP var angivet i \fIflag\fP eller en af fildeskriptorerne er blevet markeret som ikkeblokerende (\fBO_NONBLOCK\fP)\fB,\fP og operationen ville blokere. .TP \fBEINVAL\fP \fIfd_in\fP eller \fIfd_out\fP refererer ikke til en datakanal; eller \fIfd_in\fP og \fIfd_out\fP refererer til den samme datakanal. .TP \fBENOMEM\fP Ikke nok hukommelse. .SH STANDARDER Linux. .SH HISTORIK Linux 2.6.17, glibc 2.5. .SH NOTER Konceptuelt kopierer \fBtee\fP() dataene mellem de to datakanaler. I virkeligheden sker der dog ingen reel datakopiering: under overfladen tildeler \fBtee\fP() data til resultatet ved bare at fange en reference til dataene. .SH EKSEMPLER Eksemplet nedenfor implementerer et grundlæggende \fBtee\fP(1)\-program via systemkaldet \fBtee\fP(). Her er et eksempel på dets brug: .P .in +4n .EX $\fB date | ./a.out out.log | cat\fP; Tue Oct 28 10:06:00 CET 2014 $\fB cat out.log\fP; Tue Oct 28 10:06:00 CET 2014 .EE .in .SS Programkilde .\" SRC BEGIN (tee.c) \& .EX #define _GNU_SOURCE #include #include #include #include #include #include #include \& int main(int argc, char *argv[]) { int fd; ssize_t size, ssize; \& if (argc != 2) { fprintf(stderr, "Brug: %s \[rs]n", argv[0]); exit(EXIT_FAILURE); } \& fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd == \-1) { perror("open"); exit(EXIT_FAILURE); } \& for (;;) { /* * tee\-standardind til standardud. */ size = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK); if (size < 0) { if (errno == EAGAIN) continue; perror("tee"); exit(EXIT_FAILURE); } if (size == 0) break; \& /* * Forbrug standardind ved at samle det i en fil. */ while (size > 0) { ssize = splice(STDIN_FILENO, NULL, fd, NULL, size, SPLICE_F_MOVE); if (ssize < 0) { perror("splice"); exit(EXIT_FAILURE); } size \-= ssize; } } \& close(fd); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "SE OGSÅ" \fBsplice\fP(2), \fBvmsplice\fP(2), \fBpipe\fP(7) .PP .SH OVERSÆTTELSE Oversættere af denne manual til dansk Joe Hansen . .PP Denne oversættelse er gratis dokumentation; læs .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR. .PP Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til .MT debian-l10n-danish@lists.debian.org .ME .