write(2) System Calls Manual write(2) write - (libc -lc) #include ssize_t write(size_t count; int fd, const void buf[count], size_t count); write() count buf fd. count RLIMIT_FSIZE ( setrlimit(2)) count . ( pipe(7).) ( lseek(2) ) . O_APPEND open(2) . . POSIX read(2) write() . POSIX. POSIX.1 count SSIZE_MAX <<>> . . -1 errno . write() count . write() . write() . ( ). count fd write() . 0 . count fd . EAGAIN fd (O_NONBLOCK) . open(2) O_NONBLOCK. EAGAIN EWOULDBLOCK fd (O_NONBLOCK) . POSIX.1-2001 . EBADF fd . EDESTADDRREQ fd connect(2). EDQUOT fd. EFAULT buf . EFBIG . EINTR signal(7). EINVAL fd O_DIRECT buf count . EIO / inode. write() . Linux 4.13 write() fsync(2) ( write() ). EIO . fcntl(2) . ENOSPC fd . EPERM fcntl(2). EPIPE fd . SIGPIPE. ( .) fd. POSIX.1-2024. SVr4 4.3BSD POSIX.1-2001. SVr4 EINTR . write() . NFS . write() fsync(2) close(2). fsync(2) . write() EINTR . Linux write() ( ) 0x7ffff000 (2,147,479,552) . ( 32-bit 64-bit.) write() / . write() . POSIX.1-2008/SUSv4 XSI 2.9.7 (<< >>): (atomic) POSIX.1-2008 : ... write() writev(2). () . Linux 3.14 : ( open(2)) write() ( writev(2)) / ( ). Linux 3.14. close(2), fcntl(2), fsync(2), ioctl(2), lseek(2), open(2), pwrite(2), read(2), select(2), writev(2), fwrite(3) 3 . . : . 6.18 8 2026 write(2)