Unix文件IO,阻塞IO

摘要: 文件I/O(不带缓冲的I/O,系统调用:针对文件描述符,低级I/O) 不带缓冲指:每个read和write都调用内核的一个系统调用。这些不带缓冲I/O函数不是ISO C组成部分,是POSIX.1和Single UNIX Specification组成部分。1. #include STDIN_F... 阅读全文
posted @ 2014-04-16 12:59 hancmhi 阅读(344) 评论(0) 推荐(0) 编辑

Unix 系统限制

摘要: 系统限制 Unix 系统定义了很多幻数和常量,有些已被硬编码进程序中,有些要用特定的技术。1. 限制分类 两种类型的限制是必须的: (1) 编译时限制(如短整形最大值多少):可以在头文件中定义,程序在编译时可以包含这些头文件。在一个给定系统中不会改变。 (2) 运行时限制(如文件名多少字符):... 阅读全文
posted @ 2014-04-16 12:57 hancmhi 阅读(473) 评论(0) 推荐(0) 编辑

第4章 使用UDP套接字

摘要: UDP(User Datagram Protocol,用户数据报协议)提供了比TCP更简单的端到端服务。 UDP只执行两种功能:(1)向IP层添加了另一个寻址(端口)层;(2)它会检测传输中可能发生的数据损坏,并丢弃任何损坏的数据报。 UDP套接字使用前不进行连接,它会保留消息边界。UDP提供的端... 阅读全文
posted @ 2014-04-16 12:49 hancmhi 阅读(833) 评论(0) 推荐(0) 编辑

第3章 关于名称和地址族

摘要: 3.1 将名称映射到数字 socket API的大多数实现允许访问把名称映射到其他信息(包括Interenet地址)的名称服务(name service)。可以把名称(www.baidu.com)映射到Internet地址,也可以把服务(例如:应答echo)的名称映射到端口号。 解析:把名称映射到数... 阅读全文
posted @ 2014-04-16 12:48 hancmhi 阅读(230) 评论(0) 推荐(0) 编辑

第2章 基本的TCP套接字

摘要: 2.1 IPv4 TCP客户端4个步骤:(1) socket()创建TCP套接字(window下要用初始化套接字环境)(2) connect()建立到达服务起的连接(3) send()和recv() 通信(4) close关闭连接(Windows 下使用closesock())2.1.1 应答(ec... 阅读全文
posted @ 2014-04-16 12:47 hancmhi 阅读(517) 评论(0) 推荐(0) 编辑

STL对比解说——顺序容器

摘要: STL对比解说——顺序容器1. 顺序容器种类 (1) array(since TR1, C++11) (2) vector (3) deque (4) list(singly(since C++ 11) and double linked) 注:本文主要讲解:array, vector, ... 阅读全文
posted @ 2014-04-16 11:25 hancmhi 阅读(583) 评论(0) 推荐(0) 编辑

C++11 trivial, standard_layout, POD的好处和STL类型属于哪种?

摘要: C++11引进了更加完善的类型系统。包括将原本的POD类型细分为: trivial和standard_layout类型,同时具有这两个的就是POD。 trivial好处: 支持静态初始化,就是C-style array, struct和array使用{}的初始化方式。注:vect... 阅读全文
posted @ 2014-04-15 13:29 hancmhi 阅读(2962) 评论(0) 推荐(0) 编辑

模版与泛型编程简介

摘要: 1 函数模版 函数模版:独立于类型的函数,可作为一种方式产生函数特定类型版本。 格式:template + 正常的函数声明三要素。中的为模形参表,使用逗号分割。 注:模版形参表不能为空,为空为模版特化形式。 示例: template int compare(const T &val1, const T &val2) { if (v1 inline T min(const T&, const T&); //错误 inline template T min(const T&, const T&);2 类模版 同样以关键字template开头,后接模版 阅读全文
posted @ 2014-04-02 16:38 hancmhi 阅读(258) 评论(0) 推荐(0) 编辑

rand()和srand()关系很简单——一看就明白(通过一个可移植的源码)

摘要: 1 函数rand和srand实现及描述 #include //供rand()使用的种子数,初值为1 unsigned long int next = 1; /* * 描述:函数rand() 用于生成介于 0和RAND_MAX之间的伪随机整数序列 * 其中RAND_MAX是在头文件 中定义的符号常 量, RAND_MAX的取值至少为32767 * 输入:无 * 输出:返回取值在0~RAND_MAX之间的伪随机数 */ int rand(void) { next = next *1103515245 +12345; return (unsigned ... 阅读全文
posted @ 2014-04-01 12:55 hancmhi 阅读(2265) 评论(0) 推荐(1) 编辑