
C/C++
文章平均质量分 81
PengBo_Liu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
epoll使用详解(精髓)
epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且转载 2017-08-22 13:19:06 · 266 阅读 · 0 评论 -
C++四种强制类型转换符
reinterpret_cast reinterpret_cast是C++里的强制类型转换符。 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。 例如:int *n= new int ; double *d=reinterpret_cast (n); 在进行计算以后, d 包含无用值. 这是因为 reinterpret_cast转载 2017-10-18 13:24:38 · 586 阅读 · 0 评论 -
C++虚函数的实现机制
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的转载 2017-09-12 14:47:50 · 269 阅读 · 0 评论 -
线程正常终止pthread_exit,pthread_join,pthread_kill,pthread_cancel,sigwait,sigaddset
int pthread_join(pthread_t thread, void **retval); int pthread_detach(pthread_t thread); void pthread_exit(void *retval); 线程正常终止的方法: 1、return从线程函数返回。 2、通过调用函数pthread_exit使线程退出 3转载 2017-09-28 09:29:55 · 773 阅读 · 0 评论 -
clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别
转自http://blog.sina.com.cn/s/blog_790f5ae10100rwd3.html 一)ANSI clock函数 1)概述: clock 函数的返回值类型是clock_t,它除以CLOCKS_PER_SEC来得出时间,一般用两次clock函数来计算进程自身运行的时间. ANSI clock有三个问题: 1)如果超过一个小时,将要导致溢转载 2017-08-28 18:29:02 · 1422 阅读 · 0 评论 -
STL的erase()陷阱-迭代器失效总结
阅读目录(Content) 1.list,set,map容器 1.1 正确写法11.2 正确写法21.3 错误写法11.4 错误写法21.5 分析 2. vector,deque容器 2.1 正确写法2.2 注意 3.迭代器失效的情况 3.1 vector3.2 deque3.3 list3.4 slist3.5 stack3.6 queue3.7 priority_q转载 2017-08-26 18:02:49 · 196 阅读 · 0 评论 -
C++中 线程函数为静态函数 及 类成员函数作为回调函数
线程函数为静态函数: 线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运行,静态函数的地址是不变的,并不在线程堆栈中static只是起了一个装饰的作用,所以二者并没有必然的关系 线程也是一种资源,是受系统调度的。因此,你必须要让系统知道你的线程的起始位置,即线程函数的指针。Window系统的接口(API)是C转载 2017-08-22 15:11:23 · 373 阅读 · 0 评论 -
inline用法详解
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,转载 2017-08-22 14:35:01 · 495 阅读 · 0 评论 -
static函数与普通函数
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不转载 2017-08-22 14:25:15 · 182 阅读 · 0 评论 -
Epoll在LT和ET模式下的读写方式
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable 总结: 这个错误表示资源暂转载 2017-08-22 13:50:49 · 251 阅读 · 0 评论 -
细谈select函数(C语言)
版权声明:本文为博主原创文章,未经博主允许不得转载。 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻转载 2017-08-22 13:15:52 · 281 阅读 · 0 评论 -
sizeof与strlen的区别
char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响 ==================================转载 2017-10-18 14:22:49 · 190 阅读 · 0 评论