2009-11-06 14:23
select(I/O多工机制)
#include<sys/time.h>
#include<sys/types.h>
#include<unistd.h>
定义函数 int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);
函数说明 select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds 和exceptfds 称为描述词组,是用来回传该描述词的读,写或例外的状况。底下的宏提供了处理这三种描述词组的方式:
FD_CLR(inr fd,fd_set* set);用来清除描述词组set |
2009-11-06 11:33
1) va_list型变量:
#ifdef _M_ALPHA
typedef struct {
char *a0; /* pointer to first homed integer argument */
int offset; /* byte offset of next parameter */
} va_list;
#else
typedef char * va_list;
#endif
2)_INTSIZEOF 宏,获取类型占用的空间长度,最小占用长度为int的整数倍:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
|
2009-10-29 06:29
使用这个东西,首先要包含2个头文件:
#include <netdb.h>
#include <sys/socket.h>
struct hostent *gethostbyname(const char *name);
这个函数的传入值是域名或者主机名,例如"www.google.com","wpc"等等。
传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。
struct hostent {
|
2009-10-24 18:57
问苍茫大地谁主沉浮?
---------评《货币战争》
人类的历史从特定的意义上说, 就是少数人逐 步控制多数人的历史。这种控制小到一个部落, 大到一个国家。但是要控制整个世界, 主宰全人类, 却肯定 是超出了绝大多数人的想象力的。两百多年以前, 真的就有这么一些人, 真的就有这样的想象力, 真的就在 密谋策划, 真的就开始付诸实施, 一个旨在控制全世界的超级大战略。这个大战略的代号叫作“新世界秩序” (New World Order) 。其核心就是, 为了控制全世界 |
2009-10-22 17:02
英语单词在发音的时候,不是一个字母一个字母地来发音的,而是几个字母几个字母地拼起来发音的,因此英语单词叫“拼音文字”,几个拼起来发音的字母叫一个“音节”。音节有开音节、闭音节、半开音节之分,不同的音节里,要选择字母的不同发音。 比如单词China(中国)划分成chi-na两个音节,单词international(国际的)划分成in-ter-na-tio-nal五个音节,单词English(英语)划分成Eng-lish两个音节。
1. 快步英语定义的音节标准结构
|
2009-10-21 10:08
在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧。具体的来说,traits就是通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。在程序设计中可以使用这些traits来判断一个类型的一些特性,引发C++的函数重载机制,实现同一种操作因类型不同而异的效果。traits的编程技巧极度弥补了C++语言的不足 。
举例:
现在定义一个__type_traits可以获得类型的如下属性:
1. 是否存在non-trivial
|
2009-10-20 23:55
《Hilary and Jackie》,很佩服那位高人,把它译成《她比烟花寂寞》,中文名就已经能看出电影的主题了。
Hilary 和Jackie是姐妹俩,都有音乐天赋,姐姐Hilary,长笛家,妹妹Jackie,大提琴家。
他们出生于音乐世家,从小Hilary总是得到比Jackie更多的赞赏和荣誉,Jackie任性而敏感,不甘作为配角忍受忽略和寂寞,她着了魔似的拼命练习,无论是吃饭时、睡觉时、还是上课时。终于她超过了她姐姐Hilary,成了世人的焦点。Hila |
2009-10-20 20:02
这个问题大家应该都碰到过,指针数组和数组指针,刚开始看时觉得还是能看懂,但是过些时又搞混了,最后发现还是没有真正理解。
下面就简单说说这两个概念:一:指针数组,顾名思义,就是说的首先是一个数组吧,然后数组的元素是指针而已。说明形式为:type *pointer_array[constant1][constant2]...[constantn]; 例如:int *pai[3]; 由于‘*’是自右向左结合,因此从右向左看,首先看到[4]说明是一个数组,是一个包含4个元素的数组,然后看到‘*’,显然是指针类型,由此可以看出数组中存放的是指针 |
2009-10-20 17:01
STL代码中遇到一个复杂的函数定义:
static void (* __set_malloc_handler( void (*__f)() ) )()
{
void (* __old)() = __malloc_alloc_oom_handler;
__malloc_alloc_oom_handler = __f;
return __old;
}
首先_set_malloc_handler是一个函数,它接 |
2009-10-20 16:11
定位放置new(placement new)有很多作用。最简单的用处就是将对象放置在内存中的特殊位置。这是依靠 new表达式部分的指针参数的位置来完成的:
#include <new> // 必须 #include 这个,才能使用 "placement new"
#include "Fred.h" // class Fred 的声明
void someCode()
{
char memory[sizeof(Fred)]; // Line #1
void* place = memory; // Line #2
Fred* f = new(place) Fred(); // Line #3 (详见以下的“危险”)
// The |
|
|
浮云ah
男, 岁
安徽 合肥
|