C/C++
文章平均质量分 81
coding_Xu
写程序就要从点到面,以小观大,坚持下去就有进步,步步为营,才能步步为赢。
展开
-
IO多路复用之poll
前言:poll系统调用和select类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。poll API:int poll(struct pollfd* fds, nfds_t nfds, int timeout);文件描述符的就绪条件:--可读1、socket内核接收缓冲区中的字节数大于或等于其低水位标记SO_RCVLOWAT。此时我们可以无阻原创 2015-03-10 22:26:10 · 640 阅读 · 0 评论 -
IO多路复用之select
前言:select系统调用的用途是:在指定的一段时间内,监听用户感兴趣的文件描述符上的可读、可写和异常事件。select API:int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout);FD_ZERO(fd_set *fd_set);原创 2015-03-10 23:01:53 · 660 阅读 · 0 评论 -
LevelDB原理探究与代码分析
1. 概述Level DB(http://code.google.com/p/leveldb/)是google开源的Key/Value存储系统,它的committer阵容相当强大,基本上是bigtable的原班人马,包括像jeff dean这样的大牛,它的代码合设计非常具有借鉴意义,是一种典型的LSM Tree的KV引擎的实现,从它的数据结构来看,基本就是sstable的开源实现,而且针对转载 2015-01-25 18:24:59 · 704 阅读 · 0 评论 -
C语言之详解#ifdef等宏及妙用
C语言之详解#ifdef等宏及妙用 这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为: #ifdef 标识符 程序段1转载 2013-03-27 23:56:59 · 766 阅读 · 0 评论 -
gcc生成动态库静态库
gcc生成静态库和动态库一、库文件简介简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代 码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做 动态库,是由转载 2013-05-07 13:33:23 · 1004 阅读 · 0 评论 -
union:C/C++语言关键字
union:C/C++语言关键字1. 共用体声明和共用体变量定义 共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义 共用体声明和共用体变量定义与结构体十分相似。其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名;共用体表示几个变量共用一个内存位转载 2012-11-20 23:18:09 · 525 阅读 · 0 评论 -
自动变量、静态变量、全局变量、寄存器变量、易失变量
一)自动变量 什么是自动变量呢?自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的函数内部使用它。在函数外的其他任何地方都不能使用的变量。自动变量是局部变量,即它的区域性是在定义他的函数内部有效。当然这说明自动变量也没有链接性,因为它也不允许其他的文件访问他。由于自动变量在定义他的函数的外面的任何地方都是不可见的,所以允许我们在这个函数外的其他地方或者是其他的函数内部定义同名转载 2013-07-02 23:38:05 · 1894 阅读 · 0 评论 -
throw 与 throws 的区别与联系
区别一:throw 是语句抛出一个异常;throws 是方法抛出一个异常;throw语法:throw 在方法声明中,添加throws子句表示该方法将抛出异常。throws语法:[]([])[throws]其中:异常类可以声明多个,用逗号分割。区别二:throws可以单独使用,但throw不能;区别三:throw要么和try-catch-finally语句配套使用,要么与thro转载 2012-04-05 21:12:55 · 817 阅读 · 0 评论 -
IO多路复用之epoll
前言:epoll是Linux所特有的I/O复用函数。它在实现和使用上与select、poll有很大的差异。首先,epoll使用一组函数来完成任务而不是单个函数。其次,epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而无需象select和poll那样每次调用都要重复传入文件描述符集或事件集。epoll API:int epoll_create(int size); /原创 2015-03-10 22:54:39 · 675 阅读 · 0 评论