linux 内核 fget,fgets函数 linux中fgets函数怎么用
一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助。
fgets函数——linux中fgets函数如何理解
fgets函数是从输入流中读取一个字符串,它是遇到换行符,或者传输了限定的字符数量,或者遇到EOF文件尾就停止(它会把换行符也加到接收字符串里面)。fgets函数的原型是:
char*fgets(char*s,intn,FILE*stream);
函数参数说明:第一个参数是接收参数,用于接收输入文件流的字符串,第二个参数n是字符串传输长度限定参数,表示当接收了n-1个字符时停止写入,第三个参数是文件流(就是fopen函数返回的文件流),也可以是输入流stdin。使用这个函数需要include头文件。
fgets函数和scanf的%s参数的区别是:scanf接收输入字符串时,是遇到空白字符就停止,而且scanf无法限定接收字符串的长度。
fgets函数如何用
fget函数的原型如下:char*fgets(char*buf,intn,FILE*fp)
功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:
1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。
2.每次调用,fgets都会把缓冲区的最后一个字符设为null,这意味着最后一个字符不能用来存放需要的数据,所以如果有一行,含有LINE_SIZE个字符(包括换行符),要想把这行读入缓冲区,请把参数n设为LINE_SIZE+1
3.由结论1可推出:给定参数n,fgets只能读取n-1个字符(包括换行符),如果有一行超过n-1个字符,那么fgets返回一个不完整的行,也就是说,只读取该行的前n-1个字符,但是,缓冲区总是以null字符结尾,对fgets的下一次调用会继续读该行。
用法举例:
读取一个文件并打印
FILE*fp=fopen(argv[1],”r”);
charbuf[200];
while(fgets(buf,200,fp)!=NULL){/*每行的字符不能超过199才能正常工作*/
printf(“%s”,buf);
}
注意打印不用使用printf(“%s/n”,buf),因为它会把换行符也读进去
以上就是fgets函数该如何使用的所有内容,学习函数最先就是学习函数的一些语法,以及这些参数的含义,只有这些弄懂了,在实际运用当中才会熟练的运用,如果大家还想了解更多与之有关的内容,欢迎关注我们
linux 内核 fget,fgets函数 linux中fgets函数怎么用相关推荐
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
文章目录 一.堆内存管理 二.内存描述符 mm_struct 结构体 三.mm_struct 结构体中的 start_brk.brk 成员 一.堆内存管理 Linux 操作系统中的 " 堆内 ...
- linux内核学习之三:linux中的32位与64位
linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...
- 嵌入式linux内核启动过程,嵌入式Linux:ARM Linux启动流程
ARM Linux启动流程大致为:bootloader---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootlo ...
- linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...
- Linux内核开发_1_编译LInux内核
目录 1. 准备工作 1.1 学习环境 1.2 下载Linux内核源码 1.3 解压Linux内核 1.4 目录结构介绍 2. Linux内核配置 2.1 配置选项 1. make config 2. ...
- 一文了解linux内核,一文了解Linux的系统结构
什么是 Linux ? 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版.在查看Linux软件包时,你肯定被发行版.LiveCD和GNU之类的术语搞晕过.初次进入Li ...
- Linux内核入门-如何获取Linux内核源代码、生成配置内核
如何获取Linux内核源代码 如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包.除 ...
- 在win10查看本机linux的文件,Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件...
原标题:Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件 来源:创事记 终于!在Windows里可以访问Linux文件了. 这表明,微软插入开源界的触角,越来越深入 ...
- linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心
课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...
- 查看linux内核的编译时间,linux内核编译步骤
linux内核编译步骤 对于linux新手来说,编译内核相对有一些难度,甚至不知道如何入手,我通过在网上收集这方面的资料,最终编译成功.现在我归纳了一下,写出这一篇还算比较详细的步骤,希望能对各位新手 ...
最新文章
- Android 判断网络状态
- freemind的一个大bug,一周的数据啊
- 找到IIS Express配置/配置数据库文件在哪里?
- 基于 Storyboard 多种方式的页面跳转、参数传递
- 【数据平台】python中文分词工具jieba
- 学习开发语言 python 资料
- (五)门级电路低功耗设计优化
- 服务器java项目转移到另一个盘_将svn的项目从一台服务器转移到另外一台服务器...
- faker假数据php,Faker首页、文档和下载 - 生成假数据的 PHP 库
- Linux打开文件操作的注意事项
- 被称为“圣经”的《计算机体系结构》
- 新消费业内人说不出口的10个问题
- 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
- 开发者投稿—百度大脑新品体验之肤色检测
- 廖雪峰python实战(一)
- ChatGPT一战封神,和它聊完后,我更想躺平了
- 云计算平台项目团队组织架构与缘起
- LeetCode 417. 太平洋大西洋水流问题【dfs】
- 软件系统的标准化和产品化
- 高防cdn的构建简单吗?高防cdn有什么优势?