这部分基础知识点都是函数,把函数名字功能参数返回值记下来即可。
当然了每一个函数都是接口。
接下来是知识点基本大纲
- io(标准io),(文件io)
- 对目标的基本操作
- 库(动态库),(静态库)
- 多进程
- 多线程
其中多进程需要扩充进程间的通讯,一共分为7种(非常重要)
1无名管道
2有名管道
3信号管道
4消息队列
5共享内存
6信号灯集
7socket套接字通信
前6种为一台计算机内部传递,第7(套接字)很重要实现计算机与计算机传递信息。套接字内部含有ip和端口号,实现相互传递的功能。
- Io
Io分为标准io(库函数)和文件io两种(系统调用)。其中库函数存在缓冲区,而系统调用没有缓冲区。库函数=缓冲区+系统调用。
- 常见的标准io和文件io的函数接口
标准io(创建文件需要有缓存区使用标准io)
fopen,fclose,fread,fwrite,fputs,fputc,fgetc,fgets,printf,scanf等。
文件io(创建文件不要要缓存区需要频繁发送信号(鼠标))
Open,close,write,read。
*缓冲区大小及种类
缓冲区种类可以分全缓存(fd),行缓存(stdin,stdout),不缓存(stderr)
全缓存大小(4096=4k)行缓存(1024=1k)不缓存0
刷新行缓存
1.换行符“\n” 2.程序结束 3.输入输出发生切换 4文件指针被关闭
5行缓存满了 6使用函数fflush刷新(fflush(stdout))
刷新全缓存
1.程序结束 2.输入输出发生切换 3文件指针被关闭
4行缓存满了 5使用函数fflush刷新(fflush(fd))
- 标准io的创建
创建一个标准io都需要创建一个结构体指针(FILE)指向创建的标准io文件.
3个特殊的FILE指针(正在执行的程序这3个指针可正常使用)。
Stdin(标准输入)stdiut(标准输出)stderr(标准错误)
****接下来就是函数,所有函数均可以man+函数名可以看详情****
***返回值一定要重视(我在这里不体现),在长篇代码中需要中途看返回值,找出代码错误***
标准io与文件io的区别
文献
区别一:是否有缓冲机制。标准IO有缓冲(全缓冲、行缓冲、不缓冲),文件IO无缓冲
区别二:函数来源不同,也就是生产厂家不同。标准IO来自于标准c库,文件IO来自于LINUX内核,系统调用。
区别三:这两种IO操作文件的入口不一样。标准IO操作的文件入口是文件流,文件IO操作的文件入口是文件描述符。
区别四:标准IO是凌驾于所有操作系统之上的IO,而文件IO是跟操作系统有关的。
文件I/O(低级I/O)是Linux系统调用,通过系统调用来访问文件,返回一个文件描述符,可以直接对文件进行读写。需要进行内核与用户之间的切换。
标准I/O(高级I/O)是c语言的标准库,返回一个指向文件结构的指针,建立缓冲区存储文件的数据,结构中记录着文件的信息,不在内核上操作,不需要频繁切换。