摘要: rand 生成随机数需要一个初始值, rand函数的初始值是固定的,所以每次生成的随机数序列都是一样的 srand函数的作用是修改初始值,让rand函数生成的随机数序列每次都不一样,一般将当前时间传入srand生成初始值 c include include include int main(int 阅读全文
posted @ 2017-02-16 00:27 cfans1993 阅读(108) 评论(0) 推荐(0) 编辑
摘要: qsort与bsearch qsort(元素起始地址,元素总数,单个元素的大小,比较函数) bsearch(key元素地址,元素起始地址,元素总数,单个元素的大小,比较函数) 比较函数: 原型为int comp(const void \ a,const void \ b) 规定a b时返回正 c i 阅读全文
posted @ 2017-02-16 00:26 cfans1993 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 转换一个字符 mblen用于检测s指针位置第一个字符占有的字节数,n为要检测的字节数,一般指定为MB_CUR_MAX mblen返回值:如果s指向汉字返回2,s指定英文字符返回1 mbtowc将一个字符从多字节编码转到宽字节编码 wctomb将一个字符从宽字节编码转到多字节编码 转换字符串 n的作用 阅读全文
posted @ 2017-02-16 00:25 cfans1993 阅读(1528) 评论(0) 推荐(0) 编辑
摘要: 1 GB2312 80 GB 2312 或 GB 2312 80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5 月 1 日实施。GB 2312 编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和 阅读全文
posted @ 2017-02-16 00:25 cfans1993 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 解决宏与函数重名 函数在前宏在后的重名能正常工作. 宏在前函数在后就需要给函数名加一个括号 调用函数时,不管谁在前都需要给函数名加括号 理解: gcc编译时会把宏展开, 也就是把调用宏的地方全部替换成宏后面的字符串,加上括号后就能起到分隔的作用(即防止被替换), 比如下面的例子,宏在前,gcc编译前 阅读全文
posted @ 2017-02-16 00:24 cfans1993 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 传递的实质 一个进程向另一个进程传递文件描述符时,实质是传递并共享同一文件描述符的表项, 也就是共享文件指针的当前位置/文件状态标志等 在技术实现上就是把文件表项的指针传递给另一个进程 通常发送进程与接受进程对传递的文件描述符的编号(int fd)是不一样的 涉及的结构和函数 要发送描述符,需要用s 阅读全文
posted @ 2016-12-08 14:27 cfans1993 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 与tcp套接字的主要不同 1.tcp为AF_INET; unix域为AF_LOCAL 2.tcp需要指定IP和port,连接两端无限制; unix域需要连接两端在同一台主机上,连接两端通过一个socket文件互相通信 3.tcp结构名称sockaddr_in,unix域结构名称sockaddr_un 阅读全文
posted @ 2016-12-08 14:26 cfans1993 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 与pipe的区别 pipe产生的文件描述符是半双工的,需要pipe两次才能实现全双工,产生的两个描述符是一个读,一个写 socketpair直接就可以全双工,产生的两个文件描述符的任何一个都可读可写 pipe例子 c include include include int main(){ int f 阅读全文
posted @ 2016-12-08 14:26 cfans1993 阅读(264) 评论(0) 推荐(0) 编辑
摘要: gethostbyname/gethostbyaddr 均用于IPv4中, 第一个通过域名查ip地址, 第二个通过ip地址反向查询域名. 不过需要注意的反向查询需要本地有反射解析服务, 或者说本地的etc/hosts文件中有相应的记录 gethostbyname的参数是域名的字符串 gethostb 阅读全文
posted @ 2016-12-04 21:16 cfans1993 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 解决绑定失败 在测试时,经常会出现绑定错误,bind error: Address already in use 这里只要指定一下socket的reuseaddr属性即可解决 c int on=1; if(setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&on,s 阅读全文
posted @ 2016-12-04 21:15 cfans1993 阅读(168) 评论(0) 推荐(0) 编辑