Linux 2.0.32
13 January 1996
manpages-zh
Chinese manual pages
man-pages-zh-CN
Chinese Man Pages from Chinese Man Pages Project
man-pages-zh_cn
Simplified Chinese Linux man pages
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
NAME
write -在一个文件描述符上执行写操作
概述
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
描述
write 向文件描述符 fd 所引用的文件中写入 从 buf 开始的缓冲区中 count 字节的数据. POSIX规定,当使用了write()之后再使用 read(),那么读取到的应该是更新后的数据. 但请注意并不是所有的文件系统都是 POSIX兼容的.
返回值
成功时返回所写入的字节数(若为零则表示没有写入数据). 错误时返回-1,并置errno为相应值. 若count为零,对于普通文件无任何影响,但对特殊文件 将产生不可预料的后果.
错误代码
EBADF | fd 不是一个合法的文件描述符或者没有以写方式打开. |
EINVAL | fd 所指向的对象不可写. |
EFAULT | buf 不在用户可访问地址空间内. |
EPIPE | fd 连接到一个管道,或者套接字的读方向一端已关闭.此时写进程 将接收到 SIGPIPE 信号;如果此信号被捕获,阻塞或忽略,那么将返回错误 EPIPE. |
EAGAIN | 读操作阻塞,但使用 O_NONBLOCK 指定了非阻塞式输入输出. |
EINTR | 在写数据以前调用被信号中断. |
ENOSPC | fd 指向的文件所在的设备无可用空间. |
EIO | 当编辑一个节点时发生了底层输入输出错误. |
兼容于
SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4文档添加了以下错误代码: EDEADLK, EFBIG, ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE,或者ERANGE. 对于SVr4有可能在写入部分数据时发生中断并返回EINTR.
[中文版维护人]
byeyear <love_my_love >
[中文版最新更新]
2002.02.07
《中国linux论坛man手册页翻译计划》:
http://cmpp.linuxforum.net
跋
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
REFERENCED BY
close(2), epoll_ctl(2), eventfd(2), fcntl(2), getpeername(2), getrlimit(2), lseek(2), memfd_create(2), mmap(2), open(2), pipe(2), prctl(2), pread(2), read(2), readv(2), seccomp(2), select(2), select_tut(2), send(2), sendfile(2), socket(2), socketpair(2), aio_error(3), aio_return(3), aio_write(3), dbopen(3), fclose(3), fflush(3), fgetc(3), fopen(3), fread(3), gets(3tcl), mkfifo(3), mpool(3), puts(3tcl), stdio(3), xdr(3), dsp56k(4), fuse(4), lirc(4), st(4), proc(5), aio(7), cpuset(7), epoll(7), fanotify(7), inotify(7), pipe(7), sched(7), signal(7), socket(7), spufs(7), tcp(7), udp(7), x25(7), inode(7), strace(1), xfs_io(8), xfsctl(3), rmt-dump(8), innxbatch(8), innxmit(8), libcpuset(3), cpuset(4), iv_fd_pump(3), tar_block_read(3), tar_extract_file(3), mknod(2), stat(2), readv(3p), nfslogsum(8), telnet-probe(1), pv(1), msocket(2viewos), vlimit(3), pthread_cancel(3), rmt(1), spax(1), star(5), rscsi(1), fsync(2), write(2), cgroups(7), vsock(7), netsniff-ng(8), beep(1), ermt(1), ast(3ast), srmt(1), io_uring_enter(2), rmtclose(3), rmtioctl(3), rmtopen(3), rmtread(3), rmtseek(3), rmtwrite(3)