首页 > 其他分享 >文件IO

文件IO

时间:2024-05-11 19:20:00浏览次数:24  
标签:文件 IO stream int char FILE size

文件IO

记录常用的一些 IO 接口

标准IO

FILE* fopen(const char* path,const char* mode);
/***********************************************************
@path	操作的文件
@mode	操作的权限	("r","r+","w","w+","a","a+")
返回值		成功	文件指针	失败	NULL
***********************************************************/
//获取一个字符
int fgetc(FILE* STREAM);
int getc(FILE* STREAM);
//从标准输入获取一个字符
int getchar();
//行读取
char* fgets(char* s int size,FILE* stream);
char* gets(char* s);
/***********************************************************
@s		自定义的缓冲区指针
@size	自定义的缓冲区大小
@stream  操作文件指针
返回值		成功	自定义缓冲区指针 	返回	NULL
***********************************************************/
//块读取
size_t fread(void* ptr,size_t size,size_t nmemb,FILE* stream);
/***********************************************************
@ptr	自定义的缓冲区大小
@size	数据块大小
@nmemb	数据块的个数
@stream	操作的文件指针
返回值		成功	 nmmemb(读取的数据块个数)
		  失败   nmmemb(读取的数据块个数)
***********************************************************/
//写入一个字符
int fputc(int c,FILE* stream);
int putc(int c,FILE* stream);
//向标准输出 输出一个字符
int putchar(int c);
//行写入
int fputs(const char *s,FILE* stream);
int puts(const char *s);
/***********************************************************
@s		自定义缓冲区指针
@stream	操作的文件指针
返回值		成功	非负整数	失败	EOF
***********************************************************/
//块写入
size_t fwrite(const void* ptr,size_t size,size_t nmemb,FILE* stream);
/***********************************************************
@ptr	自定义的缓冲区大小
@size	数据块大小
@nmemb	数据块个数
@stream 操作的文件指针
***********************************************************/
//偏移文件指针
int fseek(FILE* stream,long offset,int whence);
/***********************************************************
@stream		操作的文件指针
@offset		偏移量
@whence		SEEK_SET
			SEEK_CUR
			SEEK_END
返回值		成功	0	失败	-1
***********************************************************/
//获取操作文件的当前偏移量
long ftell(FILE* stream);

int fprintf();		//向指定文件中输出格式化字符串
int sprintf();		//向指定缓冲区输出格式化字符串

系统IO


int open(const char *pathname, int falgs);
int open(const char *pathname, int falgs, modes_t mode);
/***********************************************************
@pathname    操作的文件
@falgs		 O_RDONLY		 只读
			O_WRONLY 		只写
			O_RDWR			可读可写
			O_APPEND		末尾追加
			O_CLOEXEC		用exec函数时,该文件描述符应该被关闭
			0_CREAT			文件不存在会自动创建
可以用 位或 操作写入多个参数
@mode		文件权限(777) 只能是 falgs 是 O_CREAT/O_TMPFILE
返回值		  成功:文件描述符(非负整数,本质就是数组下标)
			失败:-1
***********************************************************/
ssize_t write(int fd,const void *buf, size_t count);
/***********************************************************
@fd			文件描述符
@buf		缓冲区
@count		预期写入的字节数
返回值	成功	成功写入的字节数
	  失败  -1
***********************************************************/
ssize_t read(int fd, void *buf, size_t count);
/***********************************************************
@fd			文件描述符
@buf		缓冲区
@count		预期读取的字节数
返回值	成功	成功读取的字节数
	  失败  -1
***********************************************************/
off_t lseek(int fd,off_t offset, int whence);
/***********************************************************
@fd			文件描述符
@offset		 偏移量
@whence		 SEEK_SET
			SEEK_CUR
			SEEK_END
光标的起始位置
返回值	成功	返回相较文件开头的偏移量
	  失败   -1
***********************************************************/
void *mmp(void *addr,size_t length, int prot, int flags,int fd,off_t offset);
/***********************************************************
@addr	  	一般填NULL,由内核自动寻找适合的内存空间
@length		lcd屏的大小,以字节为单位
@prot		PROT_EXEC
			PROT_READ
			PROT_WRITE
			PROT_NONE
可以通过 位或 操作写入多个权限
@flags		MPA_SHARED					//共享
			MPA_SHARED_VALIDATE
			MAP_PRIVATE					//私有
@fd			文件描述符
@offset		 偏移量					//申请空间的偏移量
返回值		成功:addr的起始地址	失败 MAP_FAILED((void*)-1)	
***********************************************************/
int munmmp(void *addr,size_t length);
/***********************************************************
@addr	  	mmp返回的addr的地址
@length		lcd屏的大小,以字节为单位
返回值		成功 0	失败 -1
***********************************************************/

标签:文件,IO,stream,int,char,FILE,size
From: https://www.cnblogs.com/waibibabu-/p/18187065

相关文章

  • 利用系统IO读取磁盘上指定BMP图片的宽和高以及大小
    文件IO代码/***************************************************************************************filename:1.c*author: [email protected]*date:2024/05/11*function: 利用系统IO读取磁盘上指定BMP图片的宽和高以及大小*......
  • Bionet_WIFI使用指南
    Bionet_WIFI使用指南适用对象:文宣楼A406课题组成员A406房间包含两个独立的路由器,分别有1000Mb的带宽。其SSID(名字)如下:使用的时候,应选择排名比较靠前的WIFI使用,越靠前来说信号越好,速度越快。获取本机的真实MAC地址路由器开启了连接管控,可以找谭然、或者我来执行绑定和连接。......
  • next_permutation 用法
    next_permutation()全排列函数·.next_permutation(start,end)返回下一个排列·.prev_permutation(start,end)返回上一个排列(均按字典序排序)当当前序列(数组)不存在下一个排列时,函数返回false,否则返回truenext_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时......
  • Vue项目中有封装过axios吗?主要是封装哪方面的?
    一、axios是什么axios 是一个轻量的 HTTP客户端基于 XMLHttpRequest 服务来执行 HTTP 请求,支持丰富的配置,支持 Promise,支持浏览器端和 Node.js 端。自Vue2.0起,尤大宣布取消对 vue-resource 的官方推荐,转而推荐 axios。现在 axios 已经成为大部分 Vue 开发者的......
  • C# 使用QuestPDF各种报错,System.IO.FileNotFoundException:“未能加载文件或程序集,Dll
    最近要做一个生成pdf报告的小功能,搜索一番之后,选择了QuestPDF这个库由于我是要在netframework4.8中实现功能,可能使用场景太老了,导致使用过程一波三折,非常的坎坷,折腾了一下午,增长了一些经验,记录下来1,如果你要在netframework4.8框架中使用,就不要自作聪明的用netstandard2.0框架......
  • 基于PG开发数据库中出现PSQLException: 错误,无法确定参数$1的数据类型
    问题描述在开发接口适配瀚高数据库时,出现此错误:同样的xml文件在达梦、金仓、Mysql中使用模糊查询时未发现错误;...likeconcat('%',#{name},'%')后经排查与数据库连接中:jdbc:highgo://.../test?stringtype=unspecified存在联系。加入``是为了避免ERROR:columnisofty......
  • 利用pycharm对分布式命令的设备进行debug(Vision mamba)
    背景介绍接着上次的visionmamba初步跑通,想进一步了解内部代码运行的过程,模型的工作机理,因此打算利用pycharm进行断点调试(即debug),花了半天时间终于学会了如何将控制台命令的形式传入pycharm中进行传参。在此,感谢大佬的博客,这里只是具体结合本机安装wsl2对大佬的博客进行......
  • (非原创)Stable Diffusion 提示词prompt tag语法总结
    基本认知提示词会相互污染,要尽可能地做减法。XL版本主推使用自然语言使用注释将修饰词汇限定给某个主体,避免提示词污染1girl(silverlonghair,purpleeyes),yellowsuit2people(1girlAND1boy)2characters(1girlAND1dog)权重调整旧语法:(){}加大权重,[]......
  • LoRa与NB-IoT两大低功耗通信技术对比
    在物联网(IoT)的浪潮中,低功耗广域网络(LPWAN)技术成为了连接智能设备的核心。其中,LoRa和NB-IoT作为两大主流技术,凭借各自的特点和优势,在物联网的广阔天地中各自扮演着不可或缺的角色。一、LoRa:广袤天地的通信使者LoRa技术,凭借其独特的扩频调制技术,成为了远距离通信的佼佼者。在全球......
  • BIOS 与 UEFI 引导流程
    引用:https://www.cnblogs.com/larry1024/p/17645208.html,非常详细,不过图片我没拷贝过来,可以直接到源站阅读BIOS与UEFI引导流程前言现代计算机的整个启动过程可以概括为:计算机通电;CPU读取保存在主板上ROM芯片里的BIOS或UEFI程序(BootLoader);该程序加载指......