上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 在线教程: http://docs.python.org/tut/tut.htmlwithopen("/home/ghost/had.txt", "w") as f: with语句可以在执行语句后自动关闭文件学习描述符__get__ __set__P84(高级)学习装饰器学习select模块中的epoll类importcollections 用于双端队列类 dequeimportheapq 用于堆函数的导入importfileinput 用于读取文件类的导入importsys 用于系统的一些东西导入imp... 阅读全文
posted @ 2012-05-30 18:53 ghost&240 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: 323535试下malloc的sizeof;46485456576064看到78看函数模板和类模板的区别enum n{N,M,K,J,L};cout << sizeof(n) << endl; //输出4class B{public: virtual void x(){ cout << "call B virtual x()" << endl; }};class D: public B{public: void x(){ cout << "call D virtual x()" << 阅读全文
posted @ 2012-05-30 18:44 ghost&240 阅读(376) 评论(0) 推荐(0) 编辑
摘要: const,c\c++中非常常用的关键字。首先我们看看const有那些修饰方法。最前面我们来看一个问题。char *p = "123";可能有的人不知道,这里的这个"123"是存储在常量区的,不容许修改的。也就是说它是个const类型的。标准的写法应该是char const *p = "123";至于为什么编译器容许上面的那个不标准的写法,可能是因为兼容性的问题吧。char p[4] = "123";//这个和上面的开始大不一样的啊。切入正题。const int s = 0;上面的很容易理解。但带上指针有些同学可能 阅读全文
posted @ 2012-05-30 18:34 ghost&240 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 实际用户ID,有效用户ID和设置用户ID看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。下面分别用RUID, EUID,SUID来表示实际用户ID,有效用户ID,设置用户ID。另外用户ID是个整型数,为了说明方便真接使用了用户名来代表不同的UID。先解释一下这几个ID的作用:RUID,用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的RUID.EUID,用于系统决定用户对系统资源的访问权限,通常情况下等于RU 阅读全文
posted @ 2012-05-30 18:32 ghost&240 阅读(379) 评论(0) 推荐(1) 编辑
摘要: 锁类型 初始化方式 加解锁特征 调度特征普通锁 PTHREAD_MUTEX_INITIALIZER 同一线程可重复加锁,解锁一次释放锁 先等待锁的进程先获得锁嵌套锁 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 同一线程可重复加锁,解锁同样次数才可释放锁 先等待锁的进程先获得锁纠错锁 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP 同一线程不能重复加锁,加上的锁只能由本线程解锁 先... 阅读全文
posted @ 2012-05-30 18:31 ghost&240 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 一、类型限定词volatile限定词volatile告诉编译器该变量除了可以被程序改变以外还可被其他代理改变。它通常被用于硬件地址和与其它并行运行的程序共享的数据。如:volatileintlocl;volatileint*ploc;你可能会奇怪为什么ANSI觉得有必要把volatile作为一个关键字。原因是它可以方便编译器优化。例如val1=x;/* 一些不使用x的代码 */val2=x;一个聪明的编译器可能注意到你使用了两次x,而没有改变它的值。那么,它有可能把x临时存储在一个寄存器中。接着,当val2需要x时,可以通过从寄存器而非初始的内存位置中读取该值以节省时间。这个过程被称为缓存(c 阅读全文
posted @ 2012-05-30 18:29 ghost&240 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 上次课上学了lseek这个函数,可以制造出“空洞”文件。演示中,我们发现,用vi或者od命令查看带空洞的文件,空洞部分填满了字符0。于是产生了:问题一:空洞文件和用字符0写同样长度的文件一样吗?我们来写一个2000000个’/0’的文件write0.file,再创建一个有长2000000的空洞的文件hole.file。具体方法就不用赘述了(前面直接写,后面lseek)。然后用ls –ls命令查看(当然也可以用du,不过比较麻烦),发现write0.file的大小为1960k,而hole.file只有8k。所以:问题一的答案是:不一样。虽然我们用vi或者od读取这两个文件,内容都是显示的一样的, 阅读全文
posted @ 2012-05-30 18:29 ghost&240 阅读(2487) 评论(0) 推荐(0) 编辑
摘要: 如同其他UNIX类系统,Linux本身也是基于命令行的。试试 “Ctrl”+“Alt”+“F1”。这就是控制台,算是Linux的本来面目。至于使用方法,除了多出登录注销外,和前面章节所提到的“终端”差不多。 在X-Window出问题或不运行X-Window的时候,操作主要在这里完成。 Linux在控制台下提供了不止一个终端,支持多用户同时登录,包括在本机同时登录。控制台“Alt”+“Fx”能够切换到第x个终端。如果需要从X-Window里跳到第x个终端,需要“Ctrl”+“Alt”+“Fx”。 一般地,Linux发行版提供7个虚拟屏幕,1~6号是控制台终端,第7个上面跑X-Window。红.. 阅读全文
posted @ 2012-05-30 18:28 ghost&240 阅读(2366) 评论(0) 推荐(0) 编辑
摘要: 在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求很简单的应该路由到hash(K) mod N对应的机器。的确,这种结构是简单的,也是实用的。但是在一些高速发展的web系统中,这样的解决方案仍有些缺陷。随着系统访问压力的增长,缓存系统不得不通过增加机器节点的方式提高集群的相应速度和数据承载量。增加机器意味着按照hash取模的方式,在增加机器节点的这一时刻,大 阅读全文
posted @ 2012-05-30 18:27 ghost&240 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 相关函数bcopy,memccpy,memcpy,memmove,strcpy,strncpy头文件#include定义函数void * memcpy(void * dest ,const void *src, size_t n);函数说明memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存 地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'?'而结束。 返回值返回指向dest的指针。 附加说明指针src和dest所指的内存区域不可重叠。#include#includeint main(int argc,c 阅读全文
posted @ 2012-05-30 18:26 ghost&240 阅读(376) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页