您的位置:首页 > 运维架构 > Linux

速记的LINUX高编笔记1

2015-06-23 23:25 316 查看
SYS_IO中的关键时FIFO*,它的本质是一个结构体,与之相对应的是STD_IO是整形的FD(文件描述符)。在SYS_IO中基本的函数有fopen(),fclose(),fread(),fwrite(),fgetc(),fputc(),fgets(),fputs(),fprintf等等。

一:fopen()函数的相关

在fopen(const char*pathname,const char* type)函数中修饰词const 表示在程序运行期间它所修饰的数值不可以改变,内容制度不可修改。在这里打开方式a(追加)是指到文件位置指针的最后一个字节的下一位。用r+(追加写类型)打开一个文件以后,每次写都要将数据写到文件的当前尾端处。对于打开方式a,a+,r,r+等等可以和标准IO中的open()函数参数打开方式一一对应。fopen()函数最后返回的是文件位置指针。关于文件位置指针存放的位置,有人说是存放在堆(假设在静态区,同一时刻只能打开一个文件(因为覆盖的原因),事实不是这样子),这些还不是太理解,就暂时记下来,以后慢慢了解吧。

二关于“get”系列函数的速记

注意:1getc的实现是一个宏。

2getc,fgetc,getchar这三个函数返回值和出错值都是一样的(EOF),所以这样的函数,给的建议是慎用,并且是自己多多看一下man手册中函数的参数,描述,返回值。

3fgets 和gets的共同就是指定了读入的缓冲区,gets是从标准输入流读,对函数越界不检查,fgets是从指定地方读入,保证写不越界,但是不保证读出所有。gets函数是没有指定读入的缓冲区n长度,有可能造成缓冲区溢出,慎用。

三:fread(),fwrite()

这两个函数返回的是读到的或者写入的字节数,当读入或者写入的字节数为0的时候,表示读的结束或者是写的结束。是实现以上’get’和’put’系列函数的基础。

四零碎的知识以及思考的问题

1对于文件的读写指针存在:当前位置。

2init进程:出现的第一个进程,是所有进程的祖先。

3空洞文件:文件中全部用\0填充。

4思考:如何用fseek,ftell测试文件的大小?

5string.h库中的文件需要熟悉

5思考:如何用malloc,realloc实现getline函数?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: