用read函数从打开的文件中读取数据。

#incldue <unistd.h>
ssize_t read(int fd, void *buf, size_t nbyte);

返回值:读到的字节数,若已到文件尾,返回0;若出错,返回-1

如果read成功,则返回读到的字节数,如已到达文件的尾端,则返回0.

有多种情况可使实际读到的字节数少于要求的字节数:

读普通文件时,在读到要求字节数之前到达了文件尾端。例如,若在到达文件尾端之前有30个字节,而要求读100个字节,则read返回30.下一次载调用read时,它将返回0(文件尾端)。

当从终端设备读时,通常一次最多读一行。

当从网络读时,网络中的缓冲机制可能造成返回值小于所要求的字节数。

当从管道或FIFO读时,如若管道包含的字节数少于所需的数量,那么read将只返回实际可用的字节数。

当从某些面向记录的设备(如磁带)读时,一次最多返回一个记录。

当一信号造成中断,而已经读了部分数据量时。

读操作从文件的当前偏移量处开始,在成功返回之前,该偏移量将增加实际读到的字节数。

int read(int fd, char *buf, unsigned nbyte);

首先,为了与ISO C一致,第二个参数由char *改为void *。在ISO C中类型void *用于表示通用指针。

其次,返回值必须是一个带符号整型(ssize_t),以保证能够返回正整数字节数、0(表示文件尾端)或-1(出错)。

最后,第三个参数在历史上是一个无符号整型,这允许一个16为实现一次读或写的数据可以多达个字节。ssize_t提供带符号的返回值,size_t提供不带符号的返回值。

write函数

调用write函数想打开文件写数据。

#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t nbytes);

返回值:若成功,返回写的字节数;若出错,返回-1.

其返回值通常与参数nbytes的的值相同,否则表示出错,write出错的一个常见原因是磁带写满,或者超过了一个给定进程的文件长度限制。

对于普通文件,写操作从文件的当前便宜量出开始。如果在打开该文件时,指出了O_APPEND选项,则在每次写操作之前,将文件偏移量设置为在文件当前结尾处。在一次成功写之前,该文件偏移量增加实际写的字节数。

read函数和write函数相关推荐

  1. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  2. Python day10 global关键字、函数递归、匿名函数、map函数的用法详解

    1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage'def littepage():global ...

  3. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)

    每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...

  4. Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]

    1. 函数签名 函数类型也叫做函数签名,可以使用 fmt.Printf("%T") 格式化参数打印函数类型. package mainimport "fmt"f ...

  5. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  6. MySQL 学习笔记(3)— 字符串函数、数值函数、日期时间函数、流程函数、聚集函数以及分组数据

    1. 字符串函数 MySQL 的常用函数包括字符串函数.数值函数.日期时间函数.流程函数等. SELECT ascii("abc"),char(97),concat("h ...

  7. 经常可能会用到的【函数节流和函数防抖】记录下,做下区分

    今天突然被人问到,函数节流和函数防抖的区别是什么, 结果我脑子一热直接举了个滚动条的粟子说是优化高频率执行的手段,就记得自己是用setTimeout来实现的. 完了区别是什么??哪个是哪个都蒙B了 回 ...

  8. c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面C语言代码使用了生成随机数的函数.延时函数.请大家仔细观察其显示效果. 从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定 ...

  9. 在python中使用关键字define定义函数_python自定义函数def的应用详解

    这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...

  10. php的匿名函数和闭包函数

    php的匿名函数和闭包函数 tags: 匿名函数 闭包函数 php闭包函数 php匿名函数 function use 引言:匿名函数和闭包函数都不是特别高深的知识,但是很多刚入门的朋友却总是很困惑,因 ...

最新文章

  1. 递归神经网络(Recurrent Neural Networks,RNN)
  2. mysql io depth_MySQL读写IO的操作过程解析
  3. 送给即将毕业的大学生:乔布斯在斯坦福的大学演讲
  4. 基于roslyn的动态编译库Natasha
  5. java中intvalue_Java Number intValue()方法与示例
  6. Python判断变量是否存在的方法
  7. vs工程 更换opencv版本_Windows下opencv源代码转化和编译
  8. django项目连接远程数据库
  9. gradient descent,计算图,backpropagation
  10. Linq 中的Aggregate一些用法
  11. java中登陆界面怎么连接到下一个界面啊_JavaWeb登陆成功后跳转到上一个页面
  12. 利用JQuery在动态页面的倒计时器
  13. 数据库 读锁(共享锁)、 写锁(排他锁)
  14. nyist 488 素数环
  15. 【数学建模】2018 A题 高温作业专用服装设计(8.22-8.24训练)
  16. css让全局字体为微软雅黑,wordpress主题通过自定义CSS实现全局更换微软雅黑字体...
  17. 如何使用PM2 部署 nodejs 项目
  18. matlab理论知识点,matlab基础知识点.doc
  19. YOLOv5全面解析教程③:更快更好的边界框回归损失
  20. 博士后的那些套路,那些坑

热门文章

  1. module项目没有蓝色小方块问题
  2. 【论文制图】chemdraw安装与使用
  3. C语言编程实现Euclid GCD算法 作业
  4. Compose Modifier.swipeable() 写个侧拉组件
  5. Data Base学习记录:ODL
  6. 宁西铁路线 宁合线 宁西铁路
  7. Frida的安装与使用
  8. 30天自制操作系统第二天
  9. UDP用户数据报协议分析
  10. 你不屑于大器晚成,就只能平庸一生