摘要: 转自:http://lingavin.com/blog/2013/03/07/alternatives-gcc/Ubuntu-gcc版本切换MAR 7TH, 2013随着ubuntu版本的更新,内置的gcc也随着更新了,可是有时后我们用不到那么高版本的gcc,这时候我们就需要为ubunut切换低版本... 阅读全文
posted @ 2013-08-30 12:04 LittleAnt 阅读(1966) 评论(0) 推荐(0) 编辑
摘要: tcp拥塞控制和流量控制有什么区别??拥塞控制: 防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。流量控制: 指点对点通信量的控制,是端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收 阅读全文
posted @ 2013-08-09 16:39 LittleAnt 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 报文交换科技名词定义中文名称:报文交换英文名称:message switching定义:通过接收,必要时存储并继续传送消息来对其进行路由选择的一种交换方式。应用学科:通信科技(一级学科);交换选路(二级学科)以上内容由全国科学技术名词审定委员会审定公布目录简介报文交换补充:电路交换与分组交换展开简介报文交换补充:电路交换与分组交换展开简介这种方式不要求在两个通信结点之间建立专用通路。结点把要发送的信息组织成一个数据包——报文,该报文中含有目标结点的地址,完整的报文在网络中一站一站地向前传送。每一个结点接收整个报文,检查目标结点地址,然后根据网络中的交通情况在适当的时候转发到下一个结点。经过多次 阅读全文
posted @ 2013-08-02 17:31 LittleAnt 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: simple_one_for_one vs one_for_one:相同点:这种Restart Strategy和one_for_one基本相同(即当一个child process挂掉后,仅仅重启该child process 而不影响其他child process)。异同点:1, simple_one_for_onesupvisor启动时不会启动任何子进程,所有子进程都只能通过调用supervisor:start_child(Sup, Args)来动态启动。2, simple_one_for_onesupvisor持有child process的定义,并有一个dict存放数据, 其实就是如干个 阅读全文
posted @ 2013-07-17 16:59 LittleAnt 阅读(4195) 评论(0) 推荐(0) 编辑
摘要: 文字部分转自:http://1234n.com/?post/qou3ebsupervisor的子进程一开始使用supervisor的时候,我用的是init/1返回子进程规格列表的方式,并且所有子进程只有两种类型,一种是supervisor进程,一种是gen_server。但这次代码重构中,我遇到一个情况。如果我可以启动普通的进程而不是gen_server,我就可以把一些我觉得没必要做成gen_server的模块代码精简掉。因为一些模块代码完全没用到任何gen_server的优势,只是借gen_server来做为supervisor的子进程启动。于是我便开始实验如何在supervisor中启动普 阅读全文
posted @ 2013-07-16 11:23 LittleAnt 阅读(3056) 评论(0) 推荐(0) 编辑
摘要: erlang程序设计里面有个设计原则就是把你的进程构造成树,把共用代码提出来,特定功能用自己的module实现,这也就是behaviour了,应用behaviour可以减少与本身事务无关的代码量,设计逻辑更加清晰。老纪边学习边记录吧。gen_server实现服务器/客户端模型,用于多个客户共用一个资源的这种情况。他由几个接口函数和几个回调函数组成(回调函数必须在你的module里定义)这些可以参考erlang的doc举个例子:-module(ch3). %这是我们的回调模块,也是我们实现业务逻辑的模块-behaviour(gen_server). % 说明我们应用gen_server这个b.. 阅读全文
posted @ 2013-07-11 14:49 LittleAnt 阅读(1922) 评论(0) 推荐(0) 编辑
摘要: 源文链接:http://wildpointer.net/2012/04/14/doxygen_graphviz/上面这张图是用Doxygen+Graphviz从netcat的源代码生成的函数调用关系图。这种图有助于阅读源代码。还可以生成class(或者struct)之间的关系图,如下所示:现在介绍如何使用Doxygen和Graphviz生成这种图:1. 下载并安装Doxygen和Graphviz。直接Google就可以找到主页,下载安装即可。2. 记住Graphviz的安装目录,以后要用到。3. 运行doxywizard。ubuntu下安装 doxygen & Graphviz:sud 阅读全文
posted @ 2013-06-18 16:19 LittleAnt 阅读(1579) 评论(0) 推荐(0) 编辑
摘要: 本文转自:http://blog.csdn.net/kofiory/article/details/5790409strerror(errno):获取errno对应的错误/****************************获取错误代码描述**************/#include <string.h>#include <errno.h> /* for strerror */#include <stdio.h>int main(int argc, char ** argv){ int i = 0; for(i = 0; i < 256; i++ 阅读全文
posted @ 2011-08-02 17:52 LittleAnt 阅读(100545) 评论(1) 推荐(1) 编辑
摘要: 1, man 介绍 Linux提供了丰富的帮助手册,当你需要查看某个命令,某个函数的使用方法时,不必在网上到处查找,只要man一下即可。 Linux的man手册共有以下几个章节: 1) Standard Commands (标准命令) 2) System Calls (系统调用) 3) Library Functions (库函数) 4) Special Devices (设备说明) 5) File Formats (文件格式) 6) Games and Toys (游戏和娱乐) 7) Miscellaneous (杂项) 8) Administrative Commands (管理员命令)2 阅读全文
posted @ 2011-08-02 17:44 LittleAnt 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 1 int system(const char * cmdstring) 2 { 3 pid_t pid; 4 int status; 5 6 if(cmdstring == NULL) 7 { 8 return (1); 9 }10 11 if ((pid = fork())<0)12 {13 status = -1;14 }15 else if (pid == 0)16 {17 execl("/bin/sh", "sh", "-c", cmdstring, (char *)0);18 _exit(127);19 }20 el 阅读全文
posted @ 2011-07-26 09:56 LittleAnt 阅读(898) 评论(0) 推荐(0) 编辑