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
- 当编辑一个节点时发生了底层输入输出错误.
可能发生了其他错误,取决于 fd 所连接的对象.
兼容于
SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4文档添加了以下错误代码: EDEADLK, EFBIG, ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE,或者ERANGE. 对于SVr4有可能在写入部分数据时发生中断并返回EINTR.
write -在一个文件描述符上执行写操作的更多相关文章
- read - 在文件描述符上执行读操作
概述#include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 描述read() 从文件描述符 fd 中读取 co ...
- linux专题一之文件描述符、重定向、管道符、tee命令
本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...
- (文件描述符0、1、2),(stdin、stdout、stderr),(终端设备)这三者之间的关系???
前言 在Linux系统中,一切设备都看作文件.而每打开一个文件,就有一个代表该打开文件的文件描述符.程序启动时默认打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出 ...
- 文件描述符与FILE
1. 文件描述符(重点) 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创 ...
- linux exec操作文件描述符
linux每一个打开文件都会关联一个文件描述符,需要的时候我们可以使用exec命令指定一个大于3的数字作为文件 linux默认文件描述符 每打开一个shell就会打开默认的三个文件描述符描0,1,2, ...
- UNIX环境编程学习笔记(4)——文件I/O之dup复制文件描述符
lienhua342014-08-23 UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符. #include <unistd.h> int dup(int fi ...
- Linux文件描述符与打开文件之间的区别(转载)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为: ...
- linux文件描述符--转载
转自:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录 ...
- Linux中的文件描述符与打开文件之间的关系
Linux中的文件描述符与打开文件之间的关系 导读 内核(kernel)利用文件描述符(file descriptor)来访问文件.文件描述符是非负整数.打开现存文件或新建文件时,内核会返回一个文件描 ...
随机推荐
- RZ、NRZ、NRZI、曼彻斯特编码
Frm: http://blog.sina.com.cn/s/blog_78e87ba10102wj9g.html 在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU.DSP.MCU甚至是个 ...
- LeetCode 分隔链表
题目链接:https://leetcode-cn.com/problems/partition-list/ 题目大意 略. 分析 空间复杂度 O(1) 的做法蛮有意思的,另外加头结点可以少写很多代码. ...
- ajaxFileUpload.js插件支持多文件上传的方法
前提条件:ajaxFileUpload.js插件多文件上传步骤:1.修改源码,(源码只支持单个文件的上传):复制代码 代码如下: //修改前代码------- //var oldElement = j ...
- 020_JUC
JUC Java.util.Concurrent 并发包 池的顶级接口 Executor 子接口 ExecutorService 工具类 Executors(Collections.Arrays .. ...
- vue项目使用js-xlsx进行excel表格的导入和导出方法的简单原型封装
前提:已经安装好 file-saver xlsx和 script-loader,如未安装,请查看 https://www.cnblogs.com/luyuefeng/p/8031597.html 新建 ...
- java-day25
. 标签学习: 1. 文件标签:构成html最基本的标签 * html:html文档的根标签 * head:头标签.用于指定html文档 ...
- 通过hint干掉笛卡尔积
Z_ZZZZZZZZ_BENE 大约有400万数据 修改前 SELECT xxxx FROM ( SELECT DISTINCT FIELD1_CONTENT FROM xxxxxxxx_LOG@ ...
- GarsiaWachs算法
解决石子问题: 题目描述如下: 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使得 ...
- Eureka注册中心是什么?
Eureka注册中心是什么? Eureka注册中心是什么? Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务.Spring Cloud将它集成在其子项目spring-clo ...
- python_django_静态文件
什么是静态文件? 是django中用于存放css,js,图片,json文件,字体文件等的文件,使代码更好管理. 1.配置 https://www.cnblogs.com/Vera-y/p/114923 ...