1637_fgets函数的功能
全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)
没想到分析一个函数的实现会这么麻烦,中间利用的一系列的库函数以及内核接口我全都不熟悉。但是,这次的这个函数应该是之前C语言的基本教程中存在的,只是我这么多年来一直做嵌入式软件的开发可能这方面不敏感,看到类似的功能章节会直接跳过。
1. 这一个函数跟之前看到的函数的分类都不相同,是一个3p的分类。但是应该是一个库函数的大概分类是错不了的。
2. 这一份文档的风格跟之前看到的几份linux的接口文档的风格不是很相同,开篇还专门写了POSIX接口。其实,到了最后一页这个谜题也就随之解开了。
3. 我其实是查找的Linux的接口文档,其实这个网站也是Linux的网站。但是,这里还是说了这个接口在linux上的实现可能跟这里的描述不同。其实最主要的原因还是最后说的文档由来方式决定的。
4. 这个函数的功能是根据一个数据流获取一个字符串,而这个字符串的获取结束有几种条件,比如说到了指定的字节数或者换行符亦或者是文件的结束。他的返回值可能是字符串也可能是NULL。如果,没有到结束符,那么 会读取n-1个字节。如果是读取到了文件的末尾,那么返回值会是NULL。
5. 这个接口在设计的时候是符合标准C的规范的。
6. 文件的属性中,有一个最后访问时间时间戳的属性。这个接口会改变文件的这个属性信息,这里也给出来了可能改变这个属性信息的其他接口。
1. 这个文档的风格跟前面看到的几个接口的文档风格的确是不同,里面的内容详实程度要好很多。
2. 这里提到了一个只是概念:一行所能够允许的最多的字符数是16384个,这个是linux定义的一个最大限制。
3. 示范代码的意图很容易理解,但是这里涉及到了一个新的接口我是不熟悉的。不过,从中可以看得出来代码设计的严谨性。先前我接触过的软件设计看起来路子比较粗犷,在细节上没有考虑这么多安全等方面的因素。后续可以在我的工作领域一起参考学习一下。
这一个给出来了这个文档的由来,从这里看这个接口的确是有着很浓厚的unix文化基因。
这样,结合这一次的接口分析以及之前看到的其他的接口内容就很容易理解上面的这个函数的设计了。上面的这个函数的设计其实是从标准输入读取一个字符串,最多读取nbuf-1个字符。读取之后的内容,自然可以通过传入的指针来进行访问处理。如果这个函数返回值是-1,那么代表处理的过程中出错了。如果处理的过程没有任何问题,那么返回0。
1637_fgets函数的功能相关推荐
- datediff什么作用php,php中easter_date函数的功能起什么作用呢?
摘要: 下文讲述php中easter_date函数的功能讲解,如下所示: easter_date函数功能说明: 返回指定年份对应的复活节午夜的Unix时间戳. easter_date语法: easte ...
- numpy中ravel函数、flatten函数的功能及差异
numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...
- 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容13]请编写fun()函数,函数的功能是删去一维数组中相同 ...
- 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...
写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...
- compact php,php中compact函数的功能起什么作用呢?
摘要: 下文讲述php中compact函数的功能讲解,如下所示: compact函数功能说明: 根据输入的变量名,使用变量名和变量值创建数组 compact语法: compact(var1,var2, ...
- C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串).例如,若输入: I am a student to ...
- VBS常用函数及功能
函数名 语法 功能 Abs Abs(number) 返回一个数的绝对值 Sqr Sqr(number) 返回一个数的平方根 Sin Sin(number) 返回角度的正玄值 Cos Cos(numbe ...
- c++语言函数strcpy,C++中函数的安全版本的意义及strcpy函数的功能和差别(图)
C++中函数的安全版本的意义及strcpy函数的功能和差别(图) 我们在进行C/C++编程时,会发现中有些函数在VS中使用时,提示使用_s的函数版本,其实这种_s的函数版本是安全版本,它们完成的任务与 ...
- C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...
最新文章
- 乱码的根本原因是字节和字符的问题(转)
- 【转】C++ 模板类的声明与实现分离问题
- H264 视频文件 帧格式 传输封装等 杂碎
- findfirst_当心findFirst()和findAny()
- 计组之总线:2、总线仲裁(链式查询、计数器查询、独立请求、分布式查询)
- esp连接服务器的协议,【零知ESP8266教程】WIFI TCP协议通信 TCP服务器示例
- [UOJ#132][BZOJ4200][luogu_P2304][NOI2015]小园丁与老司机
- c语言随机摇号程序,再谈电脑摇号之作弊
- 手机满信号无法连接服务器,手机信号满格却不能连接网络,为什么会出现这种状况?...
- 人工客服真的是真人吗?
- 【求回答】如何在mac上使用pip?zsh: command not found: pip
- Python机器学习个人总结
- python安装math模块_python math模块
- python贪心算法最短路径_dijkstra算法(贪心算法)——解决最短路径问题
- 黑马培训的点滴(前端)
- nginx配置前端不缓存
- 2021年安全员-C证(山东省-2020版)考试试卷及安全员-C证(山东省-2020版)操作证考试
- SQL学习(二)——SELECT COUNT GROUP BY HAVING
- python3默认字符编码_python3-字符编码
- CTF中pwn的入门指南
热门文章
- AWS解决方案架构师薪资平均159,033 美元
- Java快车读书笔记
- 打印机的4种色彩输出方式
- DDOS\CC流量攻击
- 2021中国5G网络创新论坛议程重磅发布!会议亮点提前看,观众报名进入倒计时!...
- stm32C8t6 通用定时器输出PWM+定时中断控制板载LED
- 界面(1):对话框和菜单 打印和按钮等杂项
- pyrouge和rouge在Linux上的安装方法以及结果比较
- Python property函数:定义属性
- RA-GCN:Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition