bzero函数_Linux(基础) | 系统IO函数的使用
图控大叔
构图传递思想
阅读从未如此简单!!!
01
前言
在Linux环境下对于IO编程的学习,小编在之前的推文中已经发布过一篇关于系统IO与标准IO的异同点的文章,对系统IO与标准IO做了初略的描述及比较。接下来,小编将按内容来发布关于系统IO与标准IO的函数使用,本次推文的内容为关于系统IO相关函数的说明及其使用。
02
预热
虽然本篇推文的内容是讲解系统IO相关函数的使用,但是对于系统IO的一些知识点,小编觉得还是有必要给大家预热一番。
系统IO
别称:文件IO、低级IO
系统IO称之为不带缓存的I/O(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O ——操作系统提供的基本I/O服务,与os绑定,特定于linix或unix平台。
系统I/O读写文件时,每次操作都会执行相关系统调用。
好处:直接读写实际文件
坏处:频繁的系统调用会增加系统开销
系统I/O中用文件描述符表现一个打开的文件,可以访问不同类型的文件如普通文件、设备文件和管道文件等。
系统IO:无缓冲输出, 一般用于操作设备文件(实时刷新)
03
具体函数
打开:open
需包含头文件:
#include
#include
#include
函数功能:
打开或创建一个普通文件
函数原型:
形参作用:
1、pathname :要打开或创建的文件路径
2、flags :打开文件后对这个文件的操作权限
3、mode :是和O_CREAT参数结合一起使用,创建后给它设置用户对文件的操作权限。
(注意:设置的mode不一定会成功,因为操作系统对文件会有保护作用,比如说你的文件不存在与Linux环境下的,而是通过共享文件的形式进行操作的,那么就有这个不成功的可能)
返回值:
打开失败或创建失败:返回 -1
打开成功或创建成功:返回:大于等于0整数,这个整数称之为:文件描述符。
写入:write
需包含头文件:
#include
函数功能:
根据文件描述符对文件进行写操作
函数原型:
形参:
1、fd :要操作的文件描述符
2、buf: 要写入文件数据的地址
3、count:要写文件数据字节数
返回值:
1、写入成功:返回写入文件数据的字节数
2、返回0表示没有写入数据
3、写入失败:返回-1
关闭:close
需包含头文件:
#include
函数功能:
关闭文件
函数原型:
int close(int fd);
形参作用:
fd ---->文件描述符
返回值:
成功:0
失败:-1
读取:read
需包含头文件:
#include
函数功能:
根据文件描述符读取一个文件的数据
函数原型
形参:
1、fd -->文件描述符
2、buf -->内存地址,存储从文件里面读取出来数据
3、count --->每次要求读取的字节数
返回值:
等于-1:读取出错,可能为文件不存在或者路径出错等原因
大于0:表示成功读取的字节数
等于0:文件数据已读完
情况说明《
1、文件存在但是无数据。
2、文件有数据,但是在上一次读取时已经读取完毕。例如,距文件末尾还有50个字节而请求读100个字节,则read返回50,也就是说此时该文件的位置指针已经到了文件末尾。但此时文件尚未关闭,你进行了第二次读取的时候,read返回值就为0。
》
偏移文件位置指针:lseek
需包含头文件:
#include
#include
函数功能:
偏移文件位置指针,因为每次重新打开文件,文件位置指针默认指向开头位置,且不管是读还是写操作都会改变文件位置指针的位置
函数原型:
形参:
1、fd --->文件描述符
2、offset --->偏移量(字节数),往后偏移写正数,往前偏移写负数
3、whence --->偏移的参考点
《
SEEK_SET 文件开头
SEEK_CUR 文件位置指针当前位置
SEEK_END 文件末尾
》
返回值:
成功:返回从文件开头到文件位置指针的字节数
失败:-1
习题部分
1、往一个1.txt文件里面写入数据"hello wrold",若1.txt不存在则新建。
#include
2、读取一个2.txt文件里面的数据
#include
3、把1.txt文件里面的数据拷贝到2.txt里面
#include
4、实现大型文件的复制,且该文件大小未知,以飞秋安装包为例。
#include
5、直接读取3.txt文件里面的"hello world good" 中的 "good"
#include
6、直接往4.txt文件里面的"hello world" 中间插入 "good"
#include
04
结尾
好了,本次推文到此就要和大家说再见了,如果大家对于学习、生活中有哪些技巧、知识点需要分享的,或者是对于本次推文的内容、背景、排版等内容有什么好的想法,可以在后台给小编留言哦!祝大家学习进步!!!
bzero函数_Linux(基础) | 系统IO函数的使用相关推荐
- 标准C库IO函数和Linux系统IO函数对比
标准C库IO函数和Linux系统IO函数对比 man 3 fopen #查看函数详情 虚拟地址通过mmu映射到真是的地址空间
- linux PCB数组,Linux中的系统IO函数
一.整体大纲 二. 系统IO函数 1. 一些概念 文件描述符 PCB C库函的IO缓冲区 1) 文件描述符 int 类型 一个进程最多可打开多少文件 2) pcb 进程控制块 在其中有一个文件描述符表 ...
- Linux部分系统IO函数
1.系统IO函数: (1)open函数: 1).首先其需要包含头文件: #include<sys/types.h> #include<sys/stat.h> #include& ...
- 【Linux系统编程学习】C库IO函数与系统IO函数的关系
此为黑马Linux课程笔记. 1. C标准IO函数工作流程 如图,以C库函数的fopen为例,其返回类型是FILE类型的指针,FILE类型包含很多内容,主要包含三个内容:文件描述符.文件读写指针的位置 ...
- Linux C/C++编程之(十三)系统IO函数
文章目录 一.概述 二.当头棒喝 三.函数概述 四.IO函数介绍 1)open 2)close 3)read 4)write 5)lseek 6)fcntl 五.利用IO函数实现一个copy函数 一. ...
- 【Linux系统IO函数】lseek函数
Linux系统IO函数-lseek函数 1.1 lseek函数与标准C库的fseek函数 lseek函数对应标准C库中的fseek函数 查看标准C库中的fseek函数使用说明: (shell输入) m ...
- 文件函数python_Python 基础之文件 函数
今天回顾一下之前学的文件操作相关知识点,对于文件的操作,主要有一下几部分构成: 一.文件的基础知识 1.文件操作的基本流程 文件操作其实可以分成三大部分: 1.打开文件,获取文件句柄并赋予一个变量 2 ...
- dumpbin发现没有入口函数_JavaScript基础之入口函数-2020版
JavaScript基础之入口函数-2020版 1.入口函数 window.onload = function(){ 内部放js} 这个函数的意思就是说,当我们页面加载完毕之后(就是说等页面的结构 样 ...
- python常用数值处理函数_SciPy基础数据操作函数
2. SciPy基础 SciPy以NumPy为基础,与NumPy一样,SciPy有着稳定,成熟,且应用广泛的数值运算库.方便.易于使用.专为科学和工程设计的python工具包,它包括了统计.优化.整合 ...
- java el 函数_javaweb基础(30)_EL函数库
1 2 3 4 5 6 7 8 EL函数库中的方法使用范例 9 10 11 12 fn:toLowerCase函数使用范例: 13 14 它接收一个字符串类型的参数.fn:toLowerCase(&q ...
最新文章
- mysql激活指令_MySQL命令大全
- Date String转换
- 日常运维管理技巧十七(Nethogs进程流量监控工具)(转载)
- NTP时间服务器搭建
- CentOS 7.0服务器安装配置LAMP服务器
- 第三次学JAVA再学不好就吃翔(part109)--LineNumberReader类
- 自学笔记:计时器Chronometer
- 继承演练 动物 狗 哮天犬 c# 1613703354
- WebSocket简单使用(二) - 客户端
- 在linux中建立一个vim的目录,Linux学习笔记一(目录结构、Vim编辑器、用户管理)...
- UGUI的InputField
- 【解决办法】adobe audition打不开 显示MSVCR71.dll丢失
- 事事有着落,件件有回音——MyAppsp平台督查督办管理系统
- YOLOv5改进之十三:主干网络C3替换为轻量化网络EfficientNetv2
- NX二次开发 使用了一个已删除或无效的类号
- MeteoInfoLab脚本示例:获取气团轨迹每个节点的气象数据
- 手机Vbus上防护用OVP简介
- 2023ACP世界大赛-AI时代下,艺术教育者论坛
- 07年中国企业500强名单
- ubuntu 修改开机启动项默认值