Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
write (system call)
System call of the UNIX kernel

The write is one of the most basic routines provided by a Unix-like operating system kernel. It writes data from a buffer declared by the user to a given device, such as a file. This is the 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).
We don't have any images related to write (system call) yet.
We don't have any YouTube videos related to write (system call) yet.
We don't have any PDF documents related to write (system call) yet.
We don't have any Books related to write (system call) yet.
We don't have any archived web articles related to write (system call) yet.

POSIX usage

The write 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 write(int fildes, const void *buf, size_t nbyte);
ArgumentDescription
fildesThe file descriptor obtained from a 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 .
bufPoints to a character array, with content to be written to the file pointed to by filedes.
nbyteSpecifies the number of bytes to be written from the character array, buf, into the file pointed to by filedes.

In above syntax, ssize_t is a typedef. It is a signed data type defined in stddef.h. 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 file, which may at times be less than the specified nbytes. It returns -1 if an exceptional condition is encountered, see section on errors below.

Linux

On Linux, write is system call number 1.4

See also

  • POSIX write
  • C_Programming/C_Reference/stdio.h/fwrite at Wikibooks

References

  1. http://www.unix.com/man-page/FreeBSD/2/write/ Manual page for Write http://www.unix.com/man-page/FreeBSD/2/write/

  2. https://www.gnu.org/s/hello/manual/libc/I_002fO-Primitives.html#I_002fO-Primitives I/O Primitives https://www.gnu.org/s/hello/manual/libc/I_002fO-Primitives.html#I_002fO-Primitives

  3. "Write". http://pubs.opengroup.org/onlinepubs/007904875/functions/write.html

  4. "Linux/Arch/X86/Entry/Syscalls/Syscall_64.TBL at master · torvalds/Linux". GitHub. https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl