上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 52 下一页
摘要: Linux操作系统下的多线程编程详细解析----条件变量1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由cattr中的属性值来决定。调用 pthread_cond_init函数时,参数cattr为空指针等价于cattr中的属性为缺省属性,只是前者 阅读全文
posted @ 2010-11-24 11:30 Springside4 阅读(158) 评论(0) 推荐(0) 编辑
摘要: C++纯虚函数 virtual =0参考:http://hi.baidu.com/cunlin/blog/item/d82b160102e0e4037aec2ccb.html(百度空间)=========================================================================C++中的纯虚函数在C++中的一种函数申明被称之为:纯虚函数(pure virtual function).它的申明格式如下:class CShape{public: virtual void Show()=0;};注意红色部分,在普通的虚函数后面加上"=0 阅读全文
posted @ 2010-11-24 09:51 Springside4 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为:template<classT>......在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了:template<typenameT>......在模 阅读全文
posted @ 2010-11-23 20:57 Springside4 阅读(247) 评论(0) 推荐(0) 编辑
摘要: C++中,有三种类型的循环语句:for、while、do...while在一般应用中作循环时,我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性1.do...while(0)消除goto语句通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version1boolExecute(){//分配资源int*p=newint;boolbOk(true);//执行并进行错误 阅读全文
posted @ 2010-11-23 17:15 Springside4 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、 强制转型1) C 风格(C-style)强制转型: (T) exdivssion // cast exdivssion to be of type T 2)函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T上面两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题,我们把这两种形式称为旧风格(old-style)的强制转型。二、 C++类型转换使用标准C++的类型转换符,主要有四种类型:static_cast、dynamic_cast、reinterdivt_cas.. 阅读全文
posted @ 2010-11-19 13:24 Springside4 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法 set fileencoding=gb18030 set fileencodings=utf-8,gb18030,utf-16,big5想看这样设置的原因吗?请继续。下文在网络中广泛流传vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set 阅读全文
posted @ 2010-11-17 20:03 Springside4 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户自己的进程,也可以以root身份运行从而将信号发送给任意一进程。Source:#include<stdio.h>#include<signal.h>#include<unistd.h>#include<stdlib.h>void when_alarm();void when_sigint();void when_sigchld(int);void whe 阅读全文
posted @ 2010-11-12 10:38 Springside4 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 一、一般用法我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.用法:#include<cstdio>#include<climits>using namespace std;#define STR(s) #s#define CONS(a,b) int(a##e##b)int main(){ printf(STR(vck)); // 输出字符串"vck" printf("%d", CONS(2,3)); // 2e3 输出:2000 return 0;}二、当宏参数是另一个宏的时候需要注意的是凡宏定义里有用'# 阅读全文
posted @ 2010-11-12 09:43 Springside4 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 指针数组与指向指针的指针http://wlkc.gdqy.edu.cn/jpkc/portal/blob?key=173314指针数组和数组指针的区别http://allew.blog.163.com/blog/static/3374389720094148449239/指针数组[组图]http://school.cnd8.com/c/jiaocheng/9212.htm函数指针和指针函数http://lionwq.spaces.eepw.com.cn/articles/article/item/18258========================================sour 阅读全文
posted @ 2010-11-11 18:31 Springside4 阅读(111) 评论(0) 推荐(0) 编辑
摘要: TCP连接断开的时候调用close socket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下:struct linger { int l_onoff; int l_linger; }; 有三种组合方式:第一种 l_onoff = 0; l_linger忽略这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就是优雅的退出.第二种 l_onoff非零 l_linger = 0;这种方式下,在调用close s... 阅读全文
posted @ 2010-11-11 17:16 Springside4 阅读(116) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 52 下一页