Linux-基础IO

目录

  • IO库函数接口
    • fopen
    • fwrite
    • fread
    • fseek
    • fclose
    • 实例
  • 学习系统调用IO接口
  • 探讨IO操作句柄
  • 重定向实现

IO库函数接口

fopen

file *fopen(cosnt char *path, const char *mode);

path:要打开的文件路径名称; mode:“r”,“r+”,“w”,“w+”,“a”,“a+”,“b”
r:只读; r+:可读可写;
w:只写,文件不存在则创建新文件; w+:可读可写,不存在则创建新文件;
a:追加只写(总是将数据写入文件末尾(其他则是覆盖写),不存在则创建新文件);a+:读和追加写,打开文件后从起始读,但是写总是在末尾,不存在则创建新文件;
b:对文件数据进行二进制操作
返回值:失败返回NULL;成功返回一个文件流指针FILE*

fwrite

size_t *fwrite(cosnt void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:要写入文件的数据的空间地址;
size:块大小;nmemb:块个数;两个相乘为总体要操作数据大小。
stream:操作句柄–fopen返回的文件流指针;
返回值:实际写入文件的块个数

fread

size_t *fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:一块缓冲区内存空间的地址,用于存放读取的数据
size:块大小;nmemb:块个数;
stream:操作句柄–fopen返回的文件流指针
返回值:成功返回读取到完整块个数;出错返回0;读取到文件末尾返回0,读取的数据不足一块也返回0;
建议:块大小为1,块个数为操作数据长度,否则若读取一块数据50字节,但是实际只读取了40字节的时候也会返回0,通过返回值无法确定是否已经读取到的数据
需要通过其他判断是哪个出错,feof判断读取到文件末尾,ferror判断读取数据是否出错。

fseek

int fseek(FILE *stream, long offset, int whence);

–跳转文件读写位置
stream:操作句柄-打开文件返回的文件流指针
offset:相对起点开始偏移量(偏移量可以是负数–正数向后,负数向前)
whence:相对起点–SEEK_SET-起始位置;SEEK_CUR-当前位置;SEEK_END-末尾位置
返回值:成功返回0;失败返回-1

fclose

int fclose(FILE *fp);

–关闭文件,释放资源

实例

在这里插入图片描述

学习系统调用IO接口

探讨IO操作句柄

重定向实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/470349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维数组及函数的非函数实现

2024年2月14日 1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<stdlib.h> #include<string.h> void Yanghui(int n,int (*p)[n]) {for(int i0;i<n;i){for(int j0;j<i;j){if(j0||ij){*(*(pi)j)1;}else{*(*(pi)j)*(*(pi-1)j-1)*(*(pi-1)j)…

【网络攻防实验】【北京航空航天大学】【实验三、口令破解(Password Cracking)实验】

实验三、口令破解(Password Cracking)实验 一、 L0phtCrack破解实验 1、 注册L0phtCrack: 2、 设置口令: (1) 创建3个新账户: 帐户创建过程(以test-1为例): 帐户创建结果: (2) 使用L0phtCrack破解口令:(使用管理员账号运行程序) 口令破解结果: 正确破解口令…

GPT-4影响高度创新思维的领域(一)

GPT-4的应用范围不再局限于对现有信息的检索、整理和复述&#xff0c;而是进一步拓展到了诸如文学创作、科学假设生成、教育辅导、商业策略建议等需要高度创新思维的领域。这种独立思考和创新能力赋予了GPT-4作为虚拟助手时更加丰富多元的角色定位&#xff0c;使其成为一种强大…

类加载过程介绍

一、类的生命周期 类被加载到jvm虚拟机内存开始&#xff0c;到卸载出内存为止&#xff0c;他的生命周期可以分为&#xff1a;加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中&#xf…

【教3妹学编程-算法题】子集中元素的最大数量

2哥 : 3妹&#xff0c;今年过年收到压岁钱了没呢。 3妹&#xff1a;切&#xff0c;我都多大了啊&#xff0c;肯定没收了啊 2哥 : 俺也一样&#xff0c;不仅没收到&#xff0c;小侄子小外甥都得给&#xff0c;还倒贴好几千 3妹&#xff1a;哈哈哈哈&#xff0c;2叔叔&#xff0c…

嵌入式Qt Qt 中的坐标系统

一.Qt中的坐标系统 实验1&#xff1a;窗口坐标大小 #include <QtGui/QApplication> #include <QPushButton> #include <QDebug> #include "widget.h" int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();qDebug()&…

VC++ 绘制折线学习

win32 有三个绘制折线的函数&#xff1b; Polyline&#xff0c;根据给定点数组绘制折线&#xff1b; PolylineTo&#xff0c;除了绘制也更新当前位置&#xff1b; PolyPolyline&#xff0c;绘制多条折线&#xff0c;第一个参数是点数组&#xff0c;第二个参数是一个数组、指…

[GYCTF2020]Blacklist

感觉是[强网杯 2019]随便注 的加强版&#xff0c;之前做的是最后可以通过prepare和execute实现对select的绕过&#xff0c;但是这题把这两个关键字也过滤了。 前面堆叠注入没啥问题&#xff0c;卡在了最后读取flag 查看其他师傅的wp&#xff0c;发现这个handler的可以当作丐版s…

【java苍穹外卖项目实战三】nginx反向代理和负载均衡

文章目录 1、nginx反向代理2、nginx 反向代理的好处3、nginx 反向代理的配置方式5、nginx 负载均衡的配置方式6、nginx 负载均衡策略 我们思考一个问题&#xff1a; 前端发送的请求&#xff0c;是如何请求到后端服务的&#xff1f; 前端请求地址&#xff1a;http://localhost/…

数字图像处理实验记录十(图像分割实验)

一、基础知识 1、什么是图像分割 图像分割就是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程&#xff0c;特性可以是灰度、颜色、纹理等&#xff0c;目标可以对应单个区域&#xff0c;也可以对应多个区域。 2、图像分割是怎么实现的 图像分割算法基于像素值的不连…

Days 32 ElfBoard GDT工作原理

GDT&#xff08;Gas Discharge Tubes&#xff09;&#xff0c;即陶瓷气体放电管。GDT是内部由一个或一个以上放电间隙内充有惰性气体构成的密闭器件。GDT电气性能取决于气体种类、气体压力、内部电极结构、制作工艺等因素。GDT可以承受高达数十甚至数百千 安培的浪涌电流冲击&a…

基于T1w/T2w 比值揭示髓磷脂相关变化

前言&#xff1a; 最近在阅读文献的时候发现2篇文章&#xff0c;是采用T1w/T2w 比值表征髓磷脂&#xff0c;有点感兴趣&#xff0c;因此尝试了一下文献所提出的方法。&#xff08;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9247578/ https://www.ncbi.nlm.nih.gov/pmc/ar…