转载自:http://blog.sina.com.cn/s/blog_6ae8b50d0100udpd.html

1. read

#include <unistd.h>

ssize_t read(int filedes, void *buf, size_t nbytes);
 
        返回值:读取到的字节数;0(读到 EOF);-1(出错)

read 函数从 filedes 指定的已打开文件中读取 nbytes 字节到 buf 中。以下几种情况会导致读取到的字节数小于 nbytes :

A. 读取普通文件时,读到文件末尾还不够 nbytes 字节。例如:如果文件只有 30 字节,而我们想读取 100 字节,那么实际读到的只有 30 字节,read 函数返回 30 。此时再使用 read 函数作用于这个文件会导致 read 返回 0 。

B. 从终端设备(terminal device)读取时,一般情况下每次只能读取一行。

C. 从网络读取时,网络缓存可能导致读取的字节数小于 nbytes 字节。

D. 读取 pipe 或者 FIFO 时,pipe 或 FIFO 里的字节数可能小于 nbytes 。

E. 从面向记录(record-oriented)的设备读取时,某些面向记录的设备(如磁带)每次最多只能返回一个记录。

F. 在读取了部分数据时被信号中断。

读操作始于 cfo 。在成功返回之前,cfo 增加,增量为实际读取到的字节数。

2. write

#include <unistd.h>

ssize_t write(int filedes, const void *buf, size_t nbytes);
 
   返回值:写入文件的字节数(成功);-1(出错)

write 函数向 filedes 中写入 nbytes 字节数据,数据来源为 buf 。返回值一般总是等于 nbytes,否则就是出错了。常见的出错原因是磁盘空间满了或者超过了文件大小限制。

对于普通文件,写操作始于 cfo 。如果打开文件时使用了 O_APPEND,则每次写操作都将数据写入文件末尾。成功写入后,cfo 增加,增量为实际写入的字节数。

C++ 中read和write函数相关推荐

  1. C语言中连续调用rand函数,返回值不变

    C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...

  2. 函数指针--Nginx和Redis中两种回调函数写法

    1.Nginx和Redis中两种回调函数写法 #include <stdio.h>//仿Nginx风格 //结构外声明函数指针类型 typedef void (*ngx_connectio ...

  3. c语言c++语言中静态变量,函数详解

    静态变量,静态函数对于一些c,c++的初学者来说,造成了不少的困扰.昨晚和寝室的室友讨论到这 个问题,想了一下,作了一下总结: 虽然说c和c++在很多人的眼里就是孪生姐妹,其实还是有很大区别的.在这里 ...

  4. avascript中的this与函数讲解

    徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...

  5. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...

    参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...

  6. Python3中一些有用的函数

    Python3中一些有用的函数 1.根据两个列表创建一个字典 prod_id = [1, 2, 3]prod_name = ["foo", "bar", &qu ...

  7. C++中的内联函数inline

    1.Cpp中的内联函数 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方.对内联函数进行任何修改,都需要重新编译函数的所有客户端,因 ...

  8. pandas中使用rolling.corr函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性

    pandas中使用rolling.corr函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations).例如,计算两种商品销售额之间的3个月的滚动相关性 目录

  9. python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD)

    python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD.Median Absolute Devi ...

  10. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差

    python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录

最新文章

  1. java重写paint方法时怎么样不覆盖文字_美团十月社招Java面试题合集,JVM+Spring+Spring,看了答案其实也不难...
  2. NumPy之:理解广播
  3. linux驱动之ioctl
  4. Linux查看二进制文件hexeditor
  5. oracle数据库等级,[数据库]Oracle数据库建表并用SQL编程分等级
  6. sql怎么读_mysql由于快照读,造成数据混乱,该如何解决
  7. SQL触发器 常用语句
  8. 《精通Unix下C语言编程与项目实践》读书笔记(2)
  9. 初中毕业能学习软件测试吗,我只是初中毕业而且23岁了会不会太晚我想学 – 手机爱问...
  10. linux shell 数字雨,cmd命令如何实现数字雨的效果
  11. 开源阅读书源_【阅读】一款开源的强大的看书软件!amp;超多书源。
  12. 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis搭建三层架构项目
  13. JavaScript编辑器推荐
  14. 暂缓上市的云知声,技术究竟几何?
  15. 台式机使用笔记本电脑上网解决办法。
  16. 范德堡计算机科学硕士,范德堡大学计算机科学研究生怎么样?好不好
  17. 电脑开机黑屏,只有鼠标能动
  18. 华为快应用IDE——让快应用开发更快
  19. java程序介绍和介绍
  20. “佐藤可士和”的超整理术 整理真的可以让人愉悦

热门文章

  1. 54、 按之字形顺序打印二叉树
  2. Fiddler(二) - 使用Fiddler做抓包分析
  3. 数电快速入门(五)(编码器的介绍以及通用编码器74LS148和74LS147的介绍)
  4. 数独(DFS优化练习)
  5. stack、queue和priority_queue
  6. 关于软件测试的论文文库,软件测试毕业论文[共46页]
  7. 你只管善良,剩下交给时间
  8. 网页保存PDF 保留文字 删除页面 裁剪页面 删除不需要的内容
  9. Linux手动安装和部署github
  10. 图片怎么做雕刻路径_精雕图怎么做路径