2014年1月10日
摘要: 2012-09-17 19:07:00| 分类: 网络基础知识 | 标签:分布式 面试 |字号大中小订阅tencent2012笔试题附加题 问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。 已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了,那么n就变为了n-1,那么ServerIPIndex[QQNUM%n]与ServerIPIndex[QQNUM%(n-1)]基本上都不一样了,所以大多数用户的请求都会转到其他服务器... 阅读全文
posted @ 2014-01-10 09:18 思过崖 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 记录上锁2012-08-09 21:01:36| 分类: Linux | 标签:linux |字号大中小订阅记录锁可用于有亲缘关系或无亲缘关系的进程之间共享某个文件的读与写。被锁住的文件通过其描述符访问,执行上锁操作的函数是fcntl。这种类型的锁通常是在内核中维护的,所以这些锁可以用于不同进程间的上锁,而不仅用于同一进程内不同线程间的上锁。现在假如我们要在不同进程之间进行互斥操作,如果选用互斥锁或者读写锁的话,我们必须先让这些进程共享某个内存区,然后再该共享内存区中使用某种类型的同步变量。而如果使用fcntl记录上锁的话,就不需要共享内存。下面将着重讲解fcntl函数的使用。POSIX f. 阅读全文
posted @ 2014-01-10 09:17 思过崖 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 2012-07-24 13:24:50| 分类: Linux | 标签:linux |字号大中小订阅以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对个别本人稍觉不妥的地方作了一些小的修改,并对所有列出的系统调用附上简要注释。其中有一些函数的作用完全相. 阅读全文
posted @ 2014-01-10 09:17 思过崖 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 2012-07-23 13:41:13| 分类: Linux | 标签:linux |字号大中小订阅比较一下下面三段程序:程序1int main(){ printf("this is a test\n")printf("test exit fun");exit(0);}运行结果是:This is a testTest exit fun[root@localhost3.23]#程序2int main(){ printf("this is a test\n")printf("test exit fun");_exit( 阅读全文
posted @ 2014-01-10 09:16 思过崖 阅读(327) 评论(0) 推荐(0) 编辑
  2014年1月9日
摘要: 标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。他也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲。这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓冲。一个流上执行第一次I/O操作时,相关标准I/O函数通常调用malloc获得需使用的缓冲区。术语冲洗说明I/O缓冲区的写操作。缓冲区可由标准I/O例程自动冲洗,或者可以调用函数fflush冲洗一个流。值得引起注意的是在UNIX环境中,fl 阅读全文
posted @ 2014-01-09 12:00 思过崖 阅读(1780) 评论(0) 推荐(0) 编辑
摘要: windows与unix/linux下输入回车换行的区别2012-07-23 22:51:02| 分类: Linux | 标签:linux 缓冲区 |字号大中小订阅当在windows的编辑器中敲击回车进行换行的时候,实际的文件中输入的字符为回车字符‘\r’和换行符'\n',两者对应的ASCII码分别为13和10。这是因为windows遵从了英文打字机的传统模式,英文打字机是如何换行的呢?英文打字机是选择将小车退回至起点,这个过程称为回车(carriage return, CR),随后把小车调至下一行的位置,这个过程称为换行(line feed, LF),这样就完成了英文打字机中 阅读全文
posted @ 2014-01-09 11:54 思过崖 阅读(1264) 评论(0) 推荐(0) 编辑
  2013年12月19日
摘要: strtok()函数 2009-09-03 18:55:33分类: LINUXstrtok()这个函数大家都应该碰到过,但好像总有些问题, 这里着重讲下它首先看下MSDN上的解释:char *strtok( char *strToken, const char *strDelimit );ParametersstrTokenString containing token or tokens.strDelimitSet of delimiter characters.Return ValueReturns a pointer to the next token found in strToken 阅读全文
posted @ 2013-12-19 15:05 思过崖 阅读(2003) 评论(0) 推荐(0) 编辑
摘要: //头文件的作用//1.存放标准头文件//2.宏定义//3.数据封装//4.函数的声明#ifndef#ifndef x#define x ... #endif 这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等 #ifndef x //先测试x是否被定义过 #define x//如果没有定义下面就定义x并执行下面的语句 ... #endif //如果已经定义了则执行#endif后面的语句 条件指示符#ifndef检查预编译常量在前面是否已经被定义。如果在前面没有被定义,则条件指示符的值为真,于是从#ifndef到#endif之间的所有语句... 阅读全文
posted @ 2013-12-19 10:59 思过崖 阅读(191) 评论(0) 推荐(0) 编辑
摘要: C语言feof()函数的使用正确的应该是feof返回0表示文件没有结束,返回1,表示结束。feof实际观察的是上次读操作的内容,也就是上次读操作fread返回的值,如果读操作的返回值表明读取的不是空,那feof就返回0,如果上次读操作失败了,则feof返回1,表示读取完了。而fread返回值是表示正确读取的块数,如果不够,则返回0。那么我们看一下下面的程序:while(1){ if(feof(fp1)) { break; } else { tmpint = fread(&(tmp[k]),1,1,fp1); k++; }}如果fp1指向的文件有256个字节,那么运... 阅读全文
posted @ 2013-12-19 10:37 思过崖 阅读(3891) 评论(0) 推荐(0) 编辑
  2013年12月10日
摘要: 一:填空(共28分)1.(2分)structAA{chara; charb[2];shortc;intd; };请问sizeof(structAA)是___12___。2.(2分)structBB{chara;shortb[2];charc;intd;};请问sizeof(structBB)是__12____。3.(6分)int*p=NULL;intmain(){inti=3;staticinta=5;int*p1=NULL;p=&a;*p=i;p1=(int*)malloc(5*sizeof(int));i++;printf(“%d,%d\n”,a,i);return0;}在32位系 阅读全文
posted @ 2013-12-10 17:22 思过崖 阅读(437) 评论(0) 推荐(0) 编辑