C语言
文章平均质量分 51
皮子2
水滴石穿...
展开
-
xpool cpool(epool) apooll 四种网络模型分析
xpool多个线程操作1 多个线程重复以下操作(没有负载均衡 类似nginx worker工作原理)lockfd= acceptunlockepoll(fd)2 cpool/epool工作原理类似(只不过一个是select 另一个是epoll)一个主线程fd =accept(listenfd)select(..) //listenfd + fda...原创 2020-01-01 20:38:00 · 656 阅读 · 0 评论 -
gcc 动态库查找路径
gcc 动态库查找路径转载 2017-12-07 11:40:16 · 9296 阅读 · 0 评论 -
C++ PHP扩展
C++ PHP扩展转载 2017-10-24 22:28:06 · 334 阅读 · 0 评论 -
makefile 文件
makefile转载 2017-11-08 10:30:24 · 148 阅读 · 0 评论 -
swoole的进程模型架构
swoole的进程模型架构转载 2017-10-18 20:15:08 · 258 阅读 · 0 评论 -
extern 使用
http://freetoskey.blog.51cto.com/1355382/931085/转载 2017-05-03 17:56:21 · 301 阅读 · 0 评论 -
linux window动态库符号导出区别
#ifdef PHP_WIN32# include "tsrm_win32.h"# include "win95nt.h"# ifdef PHP_EXPORTS# define PHPAPI __declspec(dllexport)# else# define PHPAPI __declspec(dllimport)# endif# define PHP_DIR_SEPARA原创 2017-05-03 20:08:07 · 1665 阅读 · 0 评论 -
autoconf automake configure 生成makefile文件
automake autoconfig 生成makefile文件转载 2017-04-15 21:08:49 · 470 阅读 · 0 评论 -
C 柔性数组
http://blog.csdn.net/wasd6081058/article/details/7216266转载 2017-04-20 16:09:55 · 287 阅读 · 0 评论 -
C++ 虚函数 虚基类
http://www.jianshu.com/p/620448dcc81a原创 2016-11-27 17:03:45 · 224 阅读 · 0 评论 -
ctags 使用
ctags -R *11参数的含义: -R表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。*表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表: 用#define定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs原创 2016-11-23 21:52:00 · 374 阅读 · 0 评论 -
即时编译 理解
PyPy 用 JIT (Just-in-time compilation) 来大幅提高性能。既然这么好,为什么 CPython,Ruby 不用 JIT ?是不是 Java 这样的静态语言容易实现 JIT 而动态语言不容易实现 JIT ?编程语言RubyPythonJava即时编译(JIT)知乎用户,暴雪三修玩家,略懂编程通俗的说,PyPy的JIT就是在运行过程中检测到loop,转载 2016-11-10 20:39:05 · 2084 阅读 · 0 评论 -
关于linux环境下信号SIGCHLD的排队机制
2006-05-31 11:38:35分类: LINUX一直对这个问题没有深入的思考过。最近由于项目的需要终于弄清了这个问题。以下文字是抄袭+理解+估计:在linux系统中,子进程的正常/异常终止都会给父进程发送SIGCHLD的信号,当父进程接收到子进程(第一个)信号进行wait()或waitpid()时,会屏蔽掉下一个的SIGCHLD信号,实际转载 2016-10-18 21:35:22 · 1291 阅读 · 0 评论 -
SO_REUSEADDR 地址重用
网络上关于SO_REUSEADDR套接字选项用来解决地址重用问题的资料不少,但只停留在文字表达上,并没有实例,很容易误导初学者,并产生疑惑,此处不再赘述。下面通过一个简短的例子来展示如何在项目中合理的使用该选项,以及需要注意的问题。关于TCP断开连接四次握手,如图所示应用场景:之前项目中遇到一个问题,聊天服务器的开启,关闭和重启,例如将服务器关闭后,实际上关转载 2016-10-09 19:12:49 · 1809 阅读 · 0 评论 -
libtools *.la *.so
1、.ko 是kernel object 的缩写,是Linux 2.6内核使用的动态连接文件,在Linux系统启动时加载内核模块。 2、.o 是相当于windows中的.obj文件 注意:.ko与.o的区别在于,.ko是linux 2.6内核编译之后生成的,多了一些module信息,如author,license之类的。.o文件则是linux 2.4内核编译生成的。 3、.a 是静原创 2016-09-19 14:59:37 · 562 阅读 · 0 评论 -
网络模型
套接字socket通信属于网络的传输层通信,通常都是由操作系统实现,主要有两种tcp和udp两种(分别实现的tcp协议和udp协议),本文诉述的网络模型都是建立在Linux操作系统实现的套接字API基础上。(套接字实现进程之间的通信)一 、Linux 5种 I/O模型网络数据I/O 操作拥有两个阶段,以读数据操作为例:1 操作系统读取网络数据成功放入系统内核缓冲区(或者说tcp/u原创 2016-05-11 16:33:52 · 5916 阅读 · 0 评论 -
yacc 学习
yacc建议按照如下风格来写:(1)终端符名全部用大写字母,非终端符全部用小写字母;(2)把语法规则和语义动作放在不同的行;(3)把左部相同的规则写在一起,左部只写一次,而后面所有规则都写在竖线“|”之后;(4)把分号“;”放在规则最后,独占一行;(5)用制表符来对齐规则和动作。原创 2016-04-07 10:19:30 · 442 阅读 · 0 评论 -
getopt 函数
getopt(分析命令行参数) 相关函数表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和转载 2016-04-05 19:39:25 · 322 阅读 · 0 评论