摘要: 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。尽管实现方式有异于其它的UN 阅读全文
posted @ 2016-02-02 09:28 虎头猫 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。长连接与短连接的操作过程通常的短连接操作步骤是:连接→数据传输→关闭连接;而长连接通常就是:连接→数据传输→保持连接(心跳)→数据传输→保持连接 阅读全文
posted @ 2013-09-24 14:29 虎头猫 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 踩当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。1)忘记在if,elif,else,for,while,class,def声明末尾添加 :(导致 “SyntaxError :invalid syntax”)该错误将发生在类似如下代码中:1ifspam==422print('Hello!')2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)= 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:1ifspam=42:2print(' 阅读全文
posted @ 2012-08-23 23:10 虎头猫 阅读(93) 评论(0) 推荐(0) 编辑
摘要: strdup函数的使用用法:#include <string.h>功能:复制字符串s说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。举例: // strdup.c #include <syslib.h> #include <string.h> main() { char *s="this is just f"; char *d; d=strdup(s); printf("%s",d); getchar(); return 0; }strdup()主要是拷贝字符串s的一个副本, 阅读全文
posted @ 2012-08-23 23:06 虎头猫 阅读(1573) 评论(1) 推荐(0) 编辑
摘要: do...while(0)的妙用在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version 1boolExecute(){//分配资源int*p= 阅读全文
posted @ 2012-08-23 23:05 虎头猫 阅读(110) 评论(0) 推荐(0) 编辑
摘要: ftok函数 系统建立IPC通讯 (消息队列、信号量和共享内存) 时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。编辑本段ftok原型 头文件: #include <sys/types.h> #include <sys/ipc.h> 如下: key_t ftok( char * fname, int id ) fname就是你指定的文件名(已经存在的文件名),一般使用当前目录,如: key_t key; key = ftok(".", 1); 这样就是将fname设为当前目录。 id是子序号。 在一般的UNIX实现中,是将文件的索引节 阅读全文
posted @ 2012-08-23 22:44 虎头猫 阅读(725) 评论(0) 推荐(0) 编辑
摘要: C/C++ 简单的多线程编程#include <windows.h> //『注意1』由于CreateThread()是API函数,所以,必须包含这个头文件#include <iostream>using namespace std;DWORD WINAPI Thread1Proc( LPVOID lpParameter); //线程的执行函数DWORD WINAPI Thread2Proc( LPVOID lpParameter); //线程的执行函数int a;int b;int c;int temp(0);int sum(0);int main(){a=1;b=2; 阅读全文
posted @ 2012-06-01 19:06 虎头猫 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 一列键值对数据,存储在一个table中,如何通过数据的关键字快速查找相应值呢?不要告诉我一个个拿出来比较key啊,呵呵。大家都知道,在所有的线性数据结构中,数组的定位速度最快,因为它可通过数组下标直接定位到相应的数组空间,就不需要一个个查找。而哈希表就是利用数组这个能够快速定位数据的结构解决以上的问题的。具体如何做呢?大家是否有注意到前面说的话:“数组可以通过下标直接定位到相应的空间”,对就是这句,哈希表的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空.. 阅读全文
posted @ 2012-06-01 09:36 虎头猫 阅读(207) 评论(0) 推荐(0) 编辑
摘要: assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <stdio.h>#include <assert.h>#include <stdlib.h>int main( v 阅读全文
posted @ 2012-04-11 17:42 虎头猫 阅读(77) 评论(0) 推荐(0) 编辑