文章目录

  • 1:查看man手册
  • 2:read/write函数
  • 3:strace命令
  • 4:实现简单cp功能
  • 5:缓冲区
  • 6:错误处理函数
  • 7:预读入缓输出

1:查看man手册

man 2 read
man 2 write

注意:

  • [ zero indicates end of file ]
  • [ On error,-1 is returned,and errno is set appropriately ]

2:read/write函数

头文件#include<unistd.h>

  • ssize_t read(int fd,void *buf,size_t count)

    1. fd:文件描述符
    2. buf:存数据的缓冲区
    3. count:缓冲区大小
    4. 返回值
      • 成功:读到的字节数
      • 失败:-1,设置errno
      • 0:表示读到文件末尾
  • ssize_t write(int fd,const void *buf,size_t count)
    1. fd:文件描述符
    2. buf:待写出数据的缓冲区
    3. count:实际要写入的数据的大小
    4. 返回值
      • 成功:实际写入的字节数
      • 失败:-1,设置errno

3:strace命令

shell 中使用strace命令跟踪程序执行,查看调用的系统函数。

4:实现简单cp功能

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<pthread.h>
#include<fcntl.h>int main(int argc,char *argv[])
{char buf[1024];int n = 0;int fd1 = open(argv[1],O_RDONLY); int fd2 = open(argv[2],O_RDWR | O_CREAT | O_TRUNC,0664);if( fd1 == -1){perror("open argv1 error");exit(1);}if(fd2 == -1){perror("open argv2 error");exit(1);}while( (n = read(fd1,buf,1024))  != 0){if( n < 0){perror("read error");break;}write(fd2,buf,n);}close(fd1);close(fd2);}

5:缓冲区

read、write函数常常被称为Unbuffered I/O .指的是无用户及缓冲区。但不保证不使用内核缓冲区。

6:错误处理函数

printf("xxx error: %d\n",errno);
char *strerror(int errnum);printf("xx error : %s\n",strerror(errno));void perror(const char *s);perror("open error");

7:预读入缓输出

系统调用(三)——read/write函数相关推荐

  1. Linux系统调用三、read()函数和write()函数介绍

  2. Sql Server函数全解三数据类型转换函数和文本图像函数

    原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近 ...

  3. Windows事件等待学习笔记(三)—— WaitForSingleObject函数分析

    Windows事件等待学习笔记(三)-- WaitForSingleObject函数分析 要点回顾 WaitForSingleObject NtWaitForSingleObject KeWaitFo ...

  4. oracle自带split函数_Pandas 基本使用(三) — DataFrame.to_dict() 函数基本使用

    Pandas 基本使用(三) - DataFrame.to_dict() 函数基本使用: Pandas 处理数据的基本类型为 DataFrame,数据清洗时不可必然会关系到数据类型转化问题,Panda ...

  5. c 语言绘图函数,c语言图形编程(三、绘图函数-)(C language graphics programming (three, drawing function -)).doc...

    c语言图形编程(三.绘图函数-)(C language graphics programming (three, drawing function -)).doc c语言图形编程(三.绘图函数-01) ...

  6. 第三部分 Calendar函数接口

    第三部分 Calendar函数接口 1. Calendar的17个字段的公共接口 Calendar的这17个字段,都支持下面的公共函数接口. 这些公共接口的使用示例,请参考CalendarTest.j ...

  7. 【C语言笔记初级篇】第三章:函数与递归

    第三章:函数 (1)函数是什么 在计算机科学中,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组成.它负责完成某项特定任务,而且相较于其他代码,具备独立性.一般会有输入参数并有返回值,提供对 ...

  8. Oracle(三)多行函数

    Oracle(三)多行函数 --多行函数 select count(1) from emp;--查询总数量 select sum(sal) from emp;--工资总和 select max(sal ...

  9. Django基础三之视图函数

    Django基础三之视图函数 一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML ...

  10. javascript进阶课程--第三章--匿名函数和闭包

    javascript进阶课程--第三章--匿名函数和闭包 一.总结 二.学习要点 掌握匿名函数和闭包的应用 三.匿名函数和闭包 匿名函数 没有函数名字的函数 单独的匿名函数是无法运行和调用的 可以把匿 ...

最新文章

  1. 前端笔记(3)css,选择器,文字文本属性,外观属性
  2. 线程同步之关键代码段
  3. Wireshark 命令行捕获数据
  4. No module named 'urllib2'
  5. 使用MAT工具分析内存溢出
  6. qwt的安装和移植-
  7. 手机、桌面和浏览器应用程序开发的差异
  8. AWS服务器可以设置虚拟ip吗,《AWS云计算实战》3.使用虚拟服务器:EC2
  9. 3个问题,1套非技术人员的AI方法论 | 哈佛商业评论最新热文
  10. redis memcache 性能比较
  11. 【乐畅】工作积累 ---- 设置一个弹窗的层
  12. 记录一次配置unix网络编程环境的过程和遇到的问题
  13. SAP GUI 一些实用技巧分享
  14. LMC555定时器延时测试
  15. 鲁大师2022半年报电脑排行:RTX 3090 Ti继任“卡皇”,顶级笔记本开始拼颜值!
  16. 超声波传感器--Arduino
  17. E4 B8 80 E5 9D 97 E4 BA 92 E5 8A A8 28 E5 8C 97 E4 ... python解码
  18. c语言中的fab是什么意思,FAB法则中的F是指什么
  19. 帮小姐姐打分系统的模型创建,滚雪球学 Python 第三轮第 11 篇
  20. 首次使用Selenium控制谷歌浏览器,进行一些简单自动化操作

热门文章

  1. 中移动的这三波操作,让分布式存储一下子就亮了
  2. 关于HSL和HSV颜色空间的详细论述
  3. 设计模式之UML类图初步
  4. 爱上了她——不是常人所过的生活
  5. 《东邪西毒》里的经典台词
  6. 文件系统管理 之 让Fedora 支持创建reiserfs 文件系统
  7. 名为区块链实际资金盘的Fomo3D还能活多久?
  8. 运动蓝牙耳机推荐高性价比、2023年性价比最高的运动耳机
  9. linux没有应用程序,Ninite为Linux安装多个应用程序没有任何麻烦 | MOS86
  10. 水下图像——不平衡衰减相关文献阅读