.\" -*- coding: UTF-8 -*- .\" Copyright 1992, Drew Eckhardt .\" Copyright 1993, Ian Jackson .\" Copyright 2007, 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 write 2 "8. februar 2026" "Linux man\-pages 6.17" .SH NAVN write \- skriv til en fildeskriptor .SH BIBLIOTEK C\-standardbibliotek (\fIlibc\fP,\ \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .P \fBssize_t write(\fPsize_t count; \fB int \fP\fIfd\fP\fB, const void \fP\fIbuf\fP\fB[\fP\fIantal\fP\fB], size_t \fP\fIantal\fP\fB);\fP .fi .SH BESKRIVELSE \fBwrite\fP() skriver op til \fIantal\fP byte fra bufferen startende ved \fIbuf\fP til filen refereret af fildeskriptoren \fIfd\fP. .P Antallet af byte skrevet kan være mindre end \fIantal\fP hvis, for eksempel, der er utilstrækkelig plads på det underliggende fysiske medie, eller ressourcebegrænsningen \fBRLIMIT_FSIZE\fP rammes (se \fBsetrlimit\fP(2)), eller kaldet blev afbrudt af en signalhåndtering efter der er skrevet mindre end \fIantal\fP byte. (Se også \fBpipe\fP(7).) .P For en søgbar fil (dvs., en hvorpå \fBlseek\fP(2) kan anvendes, for eksempel en normal fil) sker skrivning ved filforskydningen, og filforskydningen øges trinvis med antallet af faktisk skrevne byte. Hvis filen var \fBopen\fP(2)ed (åbnet) med \fBO_APPEND\fP, placeres filforskydningen først i slutningen af filen før skrivning. Justeringen af filforskydningen og skrive\-operationen udføres som et atomar trin. .P POSIX kræver at \fBread\fP(2), der er opstået efter en \fBwrite\fP(), har returneret de nye data. Bemærk at ikke alle filsystemer overholder POSIX. .P Jævnfør POSIX.1, hvis \fIantal\fP er større end \fBSSIZE_MAX\fP, så er resultatet implementationsdefineret; se NOTES for den øvre grænse på Linux. .SH RETURVÆRDI Ved succes, antallet af bye skrevet returneres. Ved fejl, \-1 returneres og \fIerrno\fP angives for at indikere fejlen. .P Bemærk at en succesfuld \fBwrite\fP() kan overføre færre end \fIantal\fP byte. Sådanne delvise skrivninger kan opstå af forskellige årsager; for eksempel fordi der var utilstrækkelig plads på diskenheden til at skrive alle de anmodte byte, eller fordi en blokeret \fBwrite\fP() til en sokkel, datakanal eller lignende blev afbrudt af en signalhåndtering efter denne havde overført nogle, men før alle de anmodte byte var overført. I tilfælde af en delvis skrivning, kan kalderen lave endnu et \fBwrite\fP()\-kald for at overføre de tilbageværende byte. Det følgende kald vil enten overføre yderligere byte eller medføre en fejl (f.eks. hvis disken nu er fyldt op). .P Hvis \fIantal\fP er nul og \fIfd\fP referer til en normal fil, så kan \fBwrite\fP() returnere en fejlstatus hvis en af fejlene nedenfor registreres. Hvis ingen fejl registreres, eller fejlregistrering ikke udføres, så returneres 0 uden at have nogen anden effekt. Hvis \fIantal\fP er nul og \fIfd\fP refererer til en fil udover en normal fil, så angives resultaterne ikke. .SH FEJL .TP \fBEAGAIN\fP Fildeskriptoren \fIfd\fP referer til en fil udover en sokkel og er blevet markeret ikkeblokerende (\fBO_NONBLOCK\fP), og skrivningen blokerer. Se \fBopen\fP(2) for yderligere detaljer om flaget \fBO_NONBLOCK\fP. .TP \fBEAGAIN\fP eller \fBEWOULDBLOCK\fP .\" Actually EAGAIN on Linux Fildeskriptoren \fIfd\fP referer til en sokkel og er blevet markeret ikkeblokerende (\fBO_NONBLOCK\fP), og skrivningen blokerer. POSIX.1\-2001 tillader hverken at fejl returneres i dette tilfælde og kræver ikke at disse konstanter har den samme værdi, så et flytbart program skal tjekke for begge muligheder. .TP \fBEBADF\fP \fIfd\fP er ikke en gyldig fildeskriptor eller er ikke åben for skrivning. .TP \fBEDESTADDRREQ\fP \fIfd\fP referer til en datagramsokkel hvor en modpartadresse ikke er blevet angivet via \fBconnect\fP(2). .TP \fBEDQUOT\fP Brugerens kvota af diskblokke på filsystemet indeholdende filen refereret til af \fIfd\fP er tom. .TP \fBEFAULT\fP \fIbuf\fP er uden for dit tilgængelige adresserum. .TP \fBEFBIG\fP Et forsøg blev gjort på at skrive en fil, der er større end den implementationsdefinerede maksimale filstørrelse eller processens begræsning af filstørrelsen, eller der blev skrevet på en position udover den maksimale tilladte forskydning. .TP \fBEINTR\fP Kaldet blev afbrudt af et signal før data blev skrevet; se \fBsignal\fP(7). .TP \fBEINVAL\fP \fIfd\fP er vedhæftet til et objekt, der ikke er egnet for skrivning; eller filen blev åbnet med flaget \fBO_DIRECT\fP og enten den angivne adresse i \fIbuf\fP, værdien angivet i \fIantal\fP eller filforskydningen er ikke ordentlig justeret. .TP \fBEIO\fP .\" commit 088737f44bbf6378745f5b57b035e57ee3dc4750 En I/O\-fejl på lavt niveau opstod under ændring af iknuden. Denne fejl kan relatere til skriv\-tilbage af data skrevet af en tidligere \fBwrite\fP(), der kan have været udstedt til en anden fildeskriptor på den samme fil. Fra og med Linux 4.13 har fejl fra skriv\-tilbage en lovning (promise) om at de \fIkan\fP blive rapporteret efterfølgende. \fBwrite\fP()\-forespørgsler \fIvil\fP blive rapporteret efterfølgende af en \fBfsync\fP(2) (uanset om de også blev rapporteret af \fBwrite\fP()). Et alternativt tilfælde af \fBEIO\fP på netværksfilsystemer er når en rådgivende lås er udløst på fildeskriptoren og denne lås er mistet. Se \fILost locks\fP\-afsnittet hos \fBfcntl\fP(2) for yderligere detaljer. .TP \fBENOSPC\fP Enheden indeholdende filen refereret til af \fIfd\fP har ikke plads til dataene. .TP \fBEPERM\fP Operationen blev forhindret af en filforsegling; se \fBfcntl\fP(2). .TP \fBEPIPE\fP \fIfd\fP er forbundet til en datakanal eller sokkel hvis læseafslutning er lukket. Når dette sker vil skriveprocessen også modtaget et \fBSIGPIPE\fP\-signal. (Returværdien for skrivningen ses derfor kun hvis programmet bryder ned, blokeres eller ignorerer dette signal). .P Andre fejl kan opstå, afhængig af objektet forbundet til \fIfd\fP. .SH STANDARDER POSIX.1\-2024. .SH HISTORIK .\" SVr4 documents additional error .\" conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE. SVr4, 4.3BSD, POSIX.1\-2001. .P Under SVr4 kan en skrivning blive afbrudt og returnere \fBEINTR\fP på ethvert punkt, ikke kun lige før data skrives. .SH NOTER En succesfuld returnering fra \fBwrite\fP() sikrer ikke, at data er blevet overført til disken. På nogle filsystemer, inklusive NFS, garanterer det end ikke at plads er blevet reserveret for dataene. I dette tilfælde, kan nogle fejl blive forsinket indtil en fremtidig \fBwrite\fP(), \fBfsync\fP(2), eller endda \fBclose\fP(2). Den eneste måde at være sikker er at kalde \fBfsync\fP(2), efter du har skrevet alle dine data. .P Hvis en \fBwrite\fP() afbrydes af en signalhåndtering før byte skrives, så fejler kaldet med fejlbeskeden \fBEINTR\fP; hvis den afbrydes efter at mindst en byte er blevet skrevet, så lykkes kaldet og returnerer antallet af byte skrevet. .P .\" commit e28cc71572da38a5a12c1cfe4d7032017adccf69 På Linux vil \fBwrite\fP() (og lignende systemkald) overføre højest 0x7ffff000 (2.147.479.552) byte, returnerende det faktiske antal overførte byte. (Dette sker på både 32\-bit og 64\-bit systemer). .P En fejlreturværdi under udførelse af \fBwrite\fP() via direkte I/O betyder ikke at hele skrivningen er fejlet. Delvise data kan være skrevet og dataene ved filforskydningen hvorpå \fBwrite\fP() blev forsøgt skal anses for at være inkonsistente. .SH FEJL Jævnfør POSIX.1\-2008/SUSv4 sektion XSI 2.9\-7 (»Thread Interactions with Regular File Operations«): .P .RS 4 Alle de følgende funktioner skal være atomare med respekt for hinanden i effekterne specificeret i POSIX.1\-2008 når de arbejder på normale filer eller symbolske henvisninger: ... .RE .P .\" http://thread.gmane.org/gmane.linux.kernel/1649458 .\" From: Michael Kerrisk (man-pages gmail.com> .\" Subject: Update of file offset on write() etc. is non-atomic with I/O .\" Date: 2014-02-17 15:41:37 GMT .\" Newsgroups: gmane.linux.kernel, gmane.linux.file-systems .\" commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4 .\" Author: Linus Torvalds .\" Date: Mon Mar 3 09:36:58 2014 -0800 .\" .\" vfs: atomic f_pos accesses as per POSIX Blandt API'eren efterfølgende vist er \fBwrite\fP() og \fBwritev\fP(2). Og blandt effekterne der skal være atomare på tværs af tråde (og processer) er opdateringer af filforskydningen. Før Linux 3.14 var dette dog ikke tilfældet: hvis to processer, der deler en åben filbeskrivelse (se \fBopen\fP(2)) udføre en \fBwrite\fP() (eller \fBwritev\fP(2)) på samme tid, så var I/O\-operationerne ikke atomare i forhold til at opdatere filforskydningen, med det resultat, at blokkene med dataresultaterne fra de to processer kan (ukorrekt) overlappe hinanden. Dette problem blev løst i Linux 3.14. .SH "SE OGSÅ" \fBclose\fP(2), \fBfcntl\fP(2), \fBfsync\fP(2), \fBioctl\fP(2), \fBlseek\fP(2), \fBopen\fP(2), \fBpwrite\fP(2), \fBread\fP(2), \fBselect\fP(2), \fBwritev\fP(2), \fBfwrite\fP(3) .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 .