随笔分类 -  c/c++

摘要:在写这段代码的时候,发现很多地方容易弄错。select有可能会出错,返回-1。比如int FD_ISSET(int fd,fd_set *fdset);void FD_CLR(int fd,fd_set *fdset);void FD_SET(int fd,fd_set *fdset);void ... 阅读全文
posted @ 2015-11-16 19:03 chunyi 阅读(356) 评论(0) 推荐(0)
摘要:这里很简单的使用了fork()函数,在执行了fork()以后的所有代码都会由子进程和父进程同时执行。他们同时拥有相同的资源(两份拷贝),所以在子进程执行的过程中,子进程需要先close掉listenfd(监听套接字),以免过多占用系统资源。而父进程继续监听listenfd,如果有新的连接出现,则会再... 阅读全文
posted @ 2015-11-16 16:42 chunyi 阅读(375) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include #include #define DEFAULT_PORT 8000 #define MAXLINE 4096 int main(int argc, char **argv)... 阅读全文
posted @ 2015-09-18 01:50 chunyi 阅读(276) 评论(0) 推荐(0)
摘要:常用函数:1.创建一个线程用pthread_create()函数。如果成功返回0.int pthread_create(pthread_t *thread, const pthread_attr_t *attr, ... 阅读全文
posted @ 2015-09-07 00:42 chunyi 阅读(213) 评论(0) 推荐(0)
摘要:整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件。在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为... 阅读全文
posted @ 2015-08-31 19:57 chunyi 阅读(1094) 评论(0) 推荐(0)
摘要:什么是内存池(Memory Pool)是一种内存分配方式。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配效率得到提升。在内核中有不少地方... 阅读全文
posted @ 2015-08-27 05:23 chunyi 阅读(483) 评论(0) 推荐(0)
摘要:int _tmain(int argc, _TCHAR* argv[]){ char string1[3] = "aaa"; //一般来说很多IDE都会报错,但有的不会 //实际上,const char[6] 的值是不能用于初始化char[5]的实体的 char string2[3] = "b... 阅读全文
posted @ 2015-08-27 04:56 chunyi 阅读(248) 评论(0) 推荐(0)
摘要:Pointer (computer programming)Pointer arithmetic cannot be performed on void pointers because the void type has no size, and thus the pointed address ... 阅读全文
posted @ 2015-08-27 04:40 chunyi 阅读(506) 评论(0) 推荐(0)
摘要:非常重要,请多读几遍这段话A 声明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低依次是: B.1 声明中被括号括起来的部分; B.2 后缀操作符:括号()表示这是一个 函数,而方括号[]表示这是一个数组; B.3 前缀操作符:*号表示“指向...的指针”C如果const和(或)v... 阅读全文
posted @ 2015-05-21 14:54 chunyi 阅读(253) 评论(0) 推荐(0)