文章分类 - 开发积累
记录自己在学习过程中遇到的一些好的资料,以备查找
摘要:C调用C++函数库,一般不能直接调用,需要将C++库转换成C接口输出,方可以使用C调用,看下面的例子:aa.cxx#include "add.h"int sample::method(){ cout<<"method is called!\n";}aa.h#include <iostream>using namespace std;class sample{ public: int method();};将上面的两个文件生成动态库libaa.so放到 /usr/lib目录下,编译命令如下 sudo g++ -fpic -share
阅读全文
摘要:安装环境Dell PowerEdge 2850安装Red Hat Enterprise Linux3.0。如果你的系统是WIN2003或是linux3 updata版本以上的版本 服务器引导支持,在引导盘上提供支持的系统没有AS3,所以只有找驱动,驱动来源DELL技术支持。下面进入安装,划READ我是用的DELL引导盘划的。里面的图形界面很好用。接着是安装驱动,从DELL技术支持下完驱动后制作驱动软盘(好象只支持软盘安装驱动)遇到的驱动问题是READ卡驱动,做完软盘和划完READ5后,放入LINUX AS3 第一张光盘当出新LINUX界面的时候在BOOT提示符后输入 linux dd 进入驱动
阅读全文
摘要:pid = fork(); switch (pid) { case -1: plog("can't fork(): %s", strerror(errno)); return -1; case 0: /* child */ if (cfg->setup.plutostderrlog) { int f = creat(cfg->setup.plutostderrlog, 00644); /* redirect stderr to file */ if (f < 0) { plog("couldn't open stderr redi
阅读全文
摘要:IPv6地址格式IPv6的地址长度是128位(bit)。将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开。例如:2000:0000:0000:0000:0001:2345:6789:abcd这个地址很长,可以用两种方法对这个地址进行压缩,前导零压缩法:将每一段的前导零省略,但是每一段都至少应该有一个数字例如:2000:0:0:0:1:2345:6789:abcd双冒号法:如果一个以冒号十六进制数表示法表示的IPv6地址中,如果几个连续的段值都是0,那么这些0可以简记为::。每个地址中只能有一个::。例如:2000::1:2345:6789:abcd单播地址(U
阅读全文
摘要:IPv6地址格式IPv6的地址长度是128位(bit)。将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开。例如:2000:0000:0000:0000:0001:2345:6789:abcd这个地址很长,可以用两种方法对这个地址进行压缩,前导零压缩法:将每一段的前导零省略,但是每一段都至少应该有一个数字例如:2000:0:0:0:1:2345:6789:abcd双冒号法:如果一个以冒号十六进制数表示法表示的IPv6地址中,如果几个连续的段值都是0,那么这些0可以简记为::。每个地址中只能有一个::。例如:2000::1:2345:6789:abcd单播地址(U
阅读全文
摘要:信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL,进程会以默认方式处理信号。以下就简单介绍一下sigaction结构以及一般的用法。 对于内核头文件而言,struct sigaction 结构体定义在kernel/include/asm/sign.
阅读全文
摘要:原理解释:VA_LIST 是在C语言中解决变参问题的一组宏,在<stdarg.h>头文件下。VA_LIST的用法:(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。(3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。(4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参数了。如果函数有多个可变参数的,依次调用VA_ARG获取各个参数。VA_LIST在编译器中的处理:(
阅读全文
摘要:为什么要有TLS?原因在于,进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。 如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量(被称为static memory local to a thread 线程局部静态变量),就需要新的机制来实现。这就是TLS。 线程局部存储在不同的平台有不同的实现,可移植性不..
阅读全文
摘要:tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)tcp_synack_retries :INTEGER默认值是5对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN
阅读全文
摘要:文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。昨天和今天学习了并查集和trie树,并练习了三道入门题目,理解更为深刻,觉得有必要总结一下,这其中的内容定义之类的是取自网络,操作的说明解释及程序的注释部分为个人理解。并查集学习:l并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。l并查集的精髓(即它
阅读全文
摘要:文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。关键词:trie trie树 数据结构前几天学习了并查集和trie树,这里总结一下trie。本文讨论一棵最简单的trie树,基于英文26个字母组成的字符串,讨论插入字符串、判断前缀是否存在、查找字符串等基本操作;至于trie树的删除单个节点实在是少见,故在此不做详解。lTrie原理Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。lTrie性质好多人说trie的根节点不包含任何字符信息,我
阅读全文
摘要:来自:http://jianlee.ylinux.org/Computer/C/libxml.html一、libxml创建xml文件实例:View Code #include <stdio.h>#include <stdlib.h>#include <libxml/parser.h>#include <libxml/tree.h>int main (int argc, char **argv){ xmlDocPtr pdoc = NULL; xmlNodePtr proot_node = NULL,pnode = NULL,pnode1 = NU
阅读全文
浙公网安备 33010602011771号