五山口老法师

仰望星空,脚踏实地!

UNIX:缓冲区和重定向

-scanf读入原则 单字符读入,跳过空格、制表、换行 -getchar 读入原则:单字符读入,读取每个字符包括空格制表换行与putchar一起被定义为供预处理器使用的宏,不是真正意义上的函数 I/O函数:所有系统都通用的具有可移植性的函数,处理文件输入、输出的程序也使用这些函数 宏 输...

2019-04-22 10:17:26

阅读数 20

评论数 0

UNIX:描述符和文件结构

对于一个打开的文件,UNIX提供了三种数据结构来表示。 1)进程地址空间中的进程表项中的描述符表。其实就是一个数组,每一项就是一个k-v,k是fd,v是该描述符对应的打开文件在内核中的文件表项的地址。 2)文件表项。包括文件状态标志、当前文件偏移量、v节点的地址。文件状态标志位提供一些文件操作...

2019-04-22 10:05:59

阅读数 24

评论数 0

处理被中断的系统调用

首先我们要知道什么是慢系统调用! 慢系统调用:就是使系统进程可能永远阻塞的系统调用。比如,服务器调用accept()等待客户端的链接,但是客户端在无限的时间内都没有连接的话,服务器将会一直阻塞在这个accept函数之下。 当进程阻塞在慢系统调用时,进程接收到系统发送的中断信号。会使得该系统调用...

2018-10-18 17:47:28

阅读数 60

评论数 0

并发服务器编程模型

在并发服务器编程模型中,最简单的就是父进程监听外来连接请求,一旦请求到来,父进程fork()子进程处理连接,与外来客户端进行交互。 此时通用的做法是:父进程copy自己的地址空间给子进程,此时子进程拥有与父进程相同的打开的文件描述符!即,父子进程都有一个监听套接字、一个连接套接字。连接建立后,父...

2018-10-18 15:40:53

阅读数 57

评论数 0

深度好文:select与非阻塞IO

对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后必须调用bind绑定到一个指定的地址,然后调用int listen(int sockfd, int...

2018-07-29 11:17:29

阅读数 223

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭