08 2018 档案
摘要:2018-08-19 (星期日)HTTP协议:HTTP/1.0 报文有两种类型:请求和响应.请求: request-line 格式: request request-URI HTTP版本号支持以下三种请求:1) GET请求,返回request-URI所指出的任意信息.2) HEAD请求,类似于GET
阅读全文
摘要:2018-08-14 (星期二)控制与缓冲机制标准的I/O链接库实现了三种用户缓冲机制,并且提供了一个接口让开发者可以控制缓存区的类型和大小.不同类型的用户缓冲机制用于不同的目的,适合不懂的情况.下面是三种选项:未经缓冲(unbuffered) 未执行用户缓冲知己.数据会被直接提交给内核.优于这是执
阅读全文
摘要:2018-08-13 (星期一)取得当前流位置 不同步lseek(),fseek()并不会返回更新过得位置.为此,另外提供了一个接口.ftell()函数可用于返回stream的当前流: 发生错误时,它会返回-1并且将errno设定成适当的值. 此外,标准I/O链接库还提供了fgetpos(): 执行
阅读全文
摘要:2018-08-09 (星期四)查找一个流 操纵当前的流位置往往会很有用.或许是应用程序正在读取一个基于记录的复杂文件.需要来回跳跃;亦或是流需要被重新设成文件位置零.无论是何种情况,标准I/O链接库提供了一系列功能相当于lseek()系统调用的接口,例如,fseek()函数(最常见的标准I/O查找
阅读全文
摘要:2018-08-06 (星期一)标准I/O 标准I/O是与平台无关的用户缓冲方案.文本指针 标准I/O历程不会直接操作文件描述符,而会使用他们自己的标识符,成为"文件指针"(file pointer),在C链接库之内,文件指针会映射到一个文件描述符.文件指针会被表示成一个指向typedef所定义的F
阅读全文
摘要:2018-08-05 (星期日)缓冲式I/O 所有磁盘操作都是按照块来进行的,因此,若所送出的I/O请求,其对齐块便捷为实际块大小的整数倍,则可以优化I/O的性能. 读取操作需要进行的系统调用的次数增加会导致性能变差,例如,读取一个字节1024次和一次读取1024个字节后者更优. 用户缓冲式I/O
阅读全文
摘要:2018-08-02 (星期四)C++类型转换:static_cast提供编译时期静态类型检测: static_cast <type-id> (expression) 1)完成基础数据类型 2)同一个继承体系中类型的转化 3)任意类型与空指针类型void*之间的转化 4)在执行转化必要的检测(指针越
阅读全文
摘要:比较poll() 与select()尽管poll()和select()所做的是相同的工作,不过poll()优于select(),原因: 1.poll()不需要用户计算并传递作为参数的最高编号的文件描述符的值+1 2.poll()的效率优于采用最大值的文件描述符的做法.例如,你以select()来查看
阅读全文
摘要:2018-08-01 (星期三)poll(): 每个pollfd结构可用于指定一个要查看的文件描述符.events字段:该文件描述符所要查看事件的位掩码.(位掩码是什么?)revents字段:该文件描述符所目击事件的位掩码,内核会在返回时设置此字段.events字段中所要求的事件可能会从revent
阅读全文
摘要:2018-07-31 (星期二)I/O复用: 一个应用程序通常需要服务一个以上的文件描述符. 例如stdin,stdout,进程间通信以及若干文件进行I/O,如果不借助线程的话,(线程通常在同一时间无法服务一个以上文件描述符),就是分开每个所要服务的文件描述符,这样做有个问题,就是一旦遇到一个没有准
阅读全文