#粤嵌星计划#
系统IO
由操作系统直接提供的函数接口,特点是简洁,功能单一
没有提供缓冲区,因此对海量数据的操作效率较低
套接字Socket、设备文件的访问只能使用系统IO
标准IO
由标准C库提供的函数接口,特点的丰富
有提供缓冲区,因此对海量数据的操作效率高
编程开发中尽量选择标准IO,但许多场合只能用系统IO
库文件
动态库、静态库的概念,制作和使用细节
系统IO
由操作系统直接提供的函数接口,特点是简洁,功能单一
没有提供缓冲区,因此对海量数据的操作效率较低
套接字Socket、设备文件的访问只能使用系统IO
标准IO
由标准C库提供的函数接口,特点的丰富
有提供缓冲区,因此对海量数据的操作效率高
编程开发中尽量选择标准IO,但许多场合只能用系统IO
库文件
动态库、静态库的概念,制作和使用细节
#粤嵌星计划,粤嵌我来了#
今天学了网络编程的一个重点---多路复用
1、同时监听多个套接字
阻塞IO---->只能同时监听一个套接字
非阻塞IO--->一直轮询,询问IO口有没有数据到来,非常浪费CPU资源
2、什么是多路复用
就是预先把需要监听的文件描述符加入到一个集合中,然后在规定的时间内 或者 无限时间阻塞等待。
如果在规定的时间内,集合中文件描述符没有数据变化,则说明超时接收,会进入下一次规定的时间内再次等待。
一旦集合中的文件描述符有数据变化,则其他没有数据变化的文件描述符就会被踢除到集合之外,并且会再次进入下一次的等待状态。
3、特点
同时监听多个套接字
4、多路复用的函数接口 ---select
5、关于文件描述符集合的函数接口
fd_set---》文件描述符集合 数据类型
1)删除集合中某个文件描述符fd
void FD_CLR(int fd, fd_set *set);
2)判断某个文件描述符 fd 是否 在集合set中
int FD_ISSET(int fd, fd_set *set);
3)将文件描述符fd加入到集合中set
void FD_SET(int fd, fd_set *set);
4)清空这个集合set
void FD_ZERO(fd_set *set);
今天学了网络编程的一个重点---多路复用
1、同时监听多个套接字
阻塞IO---->只能同时监听一个套接字
非阻塞IO--->一直轮询,询问IO口有没有数据到来,非常浪费CPU资源
2、什么是多路复用
就是预先把需要监听的文件描述符加入到一个集合中,然后在规定的时间内 或者 无限时间阻塞等待。
如果在规定的时间内,集合中文件描述符没有数据变化,则说明超时接收,会进入下一次规定的时间内再次等待。
一旦集合中的文件描述符有数据变化,则其他没有数据变化的文件描述符就会被踢除到集合之外,并且会再次进入下一次的等待状态。
3、特点
同时监听多个套接字
4、多路复用的函数接口 ---select
5、关于文件描述符集合的函数接口
fd_set---》文件描述符集合 数据类型
1)删除集合中某个文件描述符fd
void FD_CLR(int fd, fd_set *set);
2)判断某个文件描述符 fd 是否 在集合set中
int FD_ISSET(int fd, fd_set *set);
3)将文件描述符fd加入到集合中set
void FD_SET(int fd, fd_set *set);
4)清空这个集合set
void FD_ZERO(fd_set *set);
#粤嵌星计划,粤嵌我来了#
第四周,第一次打卡
系统IO:
由操作系统直接提供的函数接口,特点就是特别简介,功能比较单一
没有提供缓冲区,因此对于海量数据的处理效率非常低
套接字(socket)、设备文件等的文件只能通过系统IO来访问
标准IO :
由标准C库所提供的函数接口, 特点就是接口简单但是功能丰富
有提供缓冲区,因此对于海量数据的处理效率相对系统IO来说更高
在编程的过程中应该尽可能地去使用系统IO , 除非迫不得已
第四周,第一次打卡
系统IO:
由操作系统直接提供的函数接口,特点就是特别简介,功能比较单一
没有提供缓冲区,因此对于海量数据的处理效率非常低
套接字(socket)、设备文件等的文件只能通过系统IO来访问
标准IO :
由标准C库所提供的函数接口, 特点就是接口简单但是功能丰富
有提供缓冲区,因此对于海量数据的处理效率相对系统IO来说更高
在编程的过程中应该尽可能地去使用系统IO , 除非迫不得已
✋热门推荐