缓冲式I/O

复制代码
#include <stdio.h>

int main(){
FILE* file;
char buf[1024], ch;

file = fopen("test", "r+");//打开文件

//设置缓存
setvbuf(file, buf, _IOFBF, sizeof(buf));

fgets(buf, sizeof(buf), file);//读取一整行
ch = fgetc(file);//读取单个字符
ungetc(ch, file);//把一个字符放回流中
fread(buf, 1, 5, file);//读取二进制数据
fwrite(buf, 1, 5, file);//写入二进制数据
fputc('g', file);//写入一个字符
fputs("ggzwtj", file);//写入一个字符串

//跳转之fseek
fseek(file, 0, SEEK_SET);
fgets(buf, sizeof(buf), file);
puts(buf);

//初始为开始位置
rewind(file);

//取得当前流的位置
printf("%ld\n", ftell(file));

//刷新一个流,保证内容写入内核
fflush(file);

//锁定(解锁,尝试锁)文件
flockfile(file);
ftrylockfile(file);
funlockfile(file);

//取得文件的描述符
printf("%d\n", fileno(file));

fcloseall();
return 0;
}
复制代码

posted @   GG大婶  阅读(243)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
点击右上角即可分享
微信分享提示