Wed . 19 Aug 2019
TR | RU | UK | KK | BE |

write (system call)

write system call in linux, write system call c
The write system call is one of the most basic routines provided by the kernel It writes data from a buffer declared by the user to a given device, maybe a file This is primary way to output data from a program by directly using a system call The destination is identified by a numeric code The data to be written, for instance a piece of text, is defined by a pointer and a size, given in number of bytes

write thus takes three arguments:

  1. The file code file descriptor or fd
  2. The pointer to a buffer where the data is stored buf
  3. The number of bytes to write from the buffer nbytes


  • 1 POSIX usage
  • 2 Usage Example
  • 3 Errors encountered during operation
  • 4 Higher level I/O functions calling write
  • 5 See also
  • 6 References
  • 7 External links

POSIX usageedit

The write system call interface123 is standardized by the POSIX specification Data is written to a file by calling the write function The function prototype is :

ssize_t writeint fd, const void buf, size_t nbytes;
Argument Description
fd It is the file descriptor which has been obtained from the call to open It is an integer value The values 0, 1, 2 can also be given, for standard input, standard output & standard error, respectively
buf It points to a character array, which can be used to store content obtained from the file pointed to by fd
nbytes It specifies the number of bytes to be written from the character array into the file pointed to by fd

In above syntax, ssize_t is a typedef It is a signed data type defined in stddefh Note that write does not return an unsigned value; it returns -1 if an error occurs so it must return a signed value
The write function returns the number of bytes successfully written into the array, which may at times be less than the specified nbytes It returns -1 if an exceptional condition is encountered, see section on errors below

Usage Exampleedit

#include <stdioh> #include <stringh> #include <stdlibh> #include <fcntlh> #include <unistdh> int main int argc, char argv / Enter the data to be written into the file / scanf"%127s", buf; writefd1, buf, strlenbuf; / fd1 is the file descriptor, buf is the character array used to hold the data, strlenbuf informs the function that the number of bytes equal to the length of the string in the buffer need to be copied / closefd1; return 0;

Errors encountered during operationedit

Listed below are some errors45 that could be encountered during writing to a file The errors are macros listed in errnoh

Error Numbers Error Meaning
4 EINTR The system call was interrupted
5 EIO Low-level errors, often concerned with hardware read/write operations
9 EBADF The file descriptor fd is not valid, or an attempt is being made to write into a file opened in 'read-only' mode
13 EACCES The user does not have the necessary permissions to write into the file
14 EFAULT The address specified in the function is an invalid address
22 EINVAL The arguments passed with the function isare invalid
27 EFBIG The file size specified in nbytes is too large, and is greater than that allowed by the system
28 ENOSPC No space available for writing onto the storage device
32 EPIPE The pipe is either broken, or the file at the other end of the pipe is not open for I/O purposes most processes giving this type of error also generate the SIGPIPE signal

Higher level I/O functions calling writeedit

The write system call is not an ordinary function, in spite of the close resemblance In Linux, the system call uses the operating code INT 80H of the assembly language, in order to transfer control over to the kernel6 The write system call, and its counterpart read, being low level functions, are only capable of understanding bytes Write cannot be used to write records, like classes Thus, higher level input-output functions like printf are required Often, the high-level interface is preferred, as compared to the cluttered low-level interface These functions call other functions internally, and these in turn can make calls to write, giving rise to a layered assembly of functions78

With the use of this assembly the higher level functions can collect bytes of data and then write the required data into a file

High-level I/O functions calling write

See alsoedit

  • read system call
  • fwrite
  • getchar
  • fprintf
  • sync Unix


  1. ^ http://wwwunixcom/man-page/FreeBSD/2/write/ Manual page for Write
  2. ^ https://wwwgnuorg/s/hello/manual/libc/I_002fO-Primitiveshtml#I_002fO-Primitives I/O Primitives
  3. ^ http://pubsopengrouporg/onlinepubs/007904875/functions/writehtml
  4. ^ https://wwwgnuorg/s/hello/manual/libc/Error-Codeshtml GNU C Library Manual
  5. ^ http://wwwibmcom/developerworks/aix/library/au-errnovariable/ IBM page listing errors
  6. ^ LINUX assembly language programming By Bob Neveln ISBN 978-0-13-087940-0
  7. ^ https://wwwgnuorg/s/libc/ GNU C Library
  8. ^ http://ftpgnuorg/gnu/glibc/ GNU C Library Download

External linksedit

  • POSIX write
  • C_Programming/C_Reference/stdioh/fwrite at Wikibooks

make system call python, write system call c, write system call in linux

write (system call) Information about

write (system call)

  • user icon

    write (system call) beatiful post thanks!


write (system call)
write (system call)
write (system call) viewing the topic.
write (system call) what, write (system call) who, write (system call) explanation

There are excerpts from wikipedia on this article and video

Random Posts

Ralph Neville, 2nd Earl of Westmorland

Ralph Neville, 2nd Earl of Westmorland

Ralph Neville, 2nd Earl of Westmorland 4 April 1406 – 3 November 1484 was an English peer Content...
Mamprusi language

Mamprusi language

The Mamprusi language, Mampruli Mampelle, Ŋmampulli, is a Gur language spoken in northern Ghana by t...
Singapore Changi Airport

Singapore Changi Airport

Singapore Changi Airport IATA: SIN, ICAO: WSSS, or simply Changi Airport, is the primary civili...
Christian Siriano

Christian Siriano

Christian Siriano born November 18, 1985 is an American fashion designer and member of the Council o...

Random Posts (



ה'תקצ"ב - ה'תקצ"ג Isl
Umudova, Nargiz Mamedaga Kyzy

Umudova, Nargiz Mamedaga Kyzy

Nargiz Umudova Azerb Nåğárgiz Umudova; born June 20, 1989, Baku, USSR - Azerbaijan chess player, gra
Nikolskoe (Gorshechensky district)

Nikolskoe (Gorshechensky district)

Nikolskoye - a village in the Gorshechensky district of the Kursk region of Russia The administrativ
Troitsky District (Altai Territory)

Troitsky District (Altai Territory)

Russia Russia Status Municipal district Included in the Altai Territory and the Administrative Ce