上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclo 阅读全文
posted @ 2012-05-30 18:25 ghost&240 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 此文所有的实验都是基于下面的程序:char str[10];for (int i = 0; i < 10; i++) str[i] = '!';执行完后str的值为str = "!!!!!!!!!!"我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比先前的惊叹号,这样就可以方便的观察str发生了怎样的变化。下面我们做几个小实验,看看使用sscanf和正则表达式格式化输入后,str有什么变化。实验1:sscanf("123456","%s",str); ------ 阅读全文
posted @ 2012-05-30 18:23 ghost&240 阅读(277) 评论(0) 推荐(0) 编辑
摘要: linux下最大文件描述符的限制有两个方面,一个是用户级的限制,另外一个则是系统级限制。先介绍如何修改系统级的限制通常我们通过终端连接到linux系统后执行ulimit -n 命令可以看到本次登录的session其文件描述符的限制,如下:$ulimit -n1024当然可以通过ulimit -SHn 102400 命令来修改该限制,但这个变更只对当前的session有效,当断开连接重新连接后更改就失效了。如果想永久变更需要修改/etc/security/limits.conf 文件,如下:vi /etc/security/limits.conf* hard nofile 102400* sof 阅读全文
posted @ 2012-05-30 18:21 ghost&240 阅读(1199) 评论(0) 推荐(0) 编辑
摘要: D d1 = d; 这个是调用的是复制构造函数 函数参数是以copy constructor初始化的Default constructor的错误认为:(P47)任何class如果没有定义default constructor,就会被合成一个出来,其实不是.(要有四种之一,带有default constructor的member class object或base class或带有一个virtual function的class或者带有一个virtual base class 的class)编译器合成出来的default constructor会现实定义”class内每一个data mem... 阅读全文
posted @ 2012-05-30 18:20 ghost&240 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 第一部分: DR模式配置OS: Redhat AS4U4 内核:2.6.9-42Server1: 192.168.1.91 (负载服务器)虚拟服务IP: 192.168.1.99Realserver: 192.168.1.92 (集群服务器)实验目的:在负载服务器上,配置LVS(DR模式),做web服务器的集群。实现最终用户访问虚拟IP,负载服务器,将请求分发到集群下的服务器,由集群服务器轮流提供web服务。 Redhat AS4U4的内核版本已经集成了ipvsadm功能模块,所以不需要安装,直接使用即可。 如果要用高版本的ipvsadm,到[url]http://www.linuxvirtu 阅读全文
posted @ 2012-05-30 18:12 ghost&240 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 许多服务器部署(尤其是 web 服务器部署)面对的最大问题之一是必须能够处理大量连接。无论是通过构建基于云的服务来处理网络通信流,还是把应用程序分布在 IBM Amazon EC 实例上,还是为网站提供高性能组件,都需要能够处理大量并发连接。一个好例子是,web 应用程序最近越来越动态了,尤其是使用 AJAX 技术的应用程序。如果要部署的系统允许数千客户端直接在网页中更新信息,比如提供事件或问题实时监视的系统,那么提供信息的速度就非常重要了。在网格或云环境中,可能有来自数千客户端的持久连接同时打开着,必须能够处理每个客户端的请求并做出响应。在讨论 libevent 和 libev 如何处理多个 阅读全文
posted @ 2012-05-30 18:10 ghost&240 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 先说明:本文基于hadoop 0.20.2版本。文章来源:http://www.codelast.com/(1)首先我们需要知道map-reduce的基本原理,这里不说了。其次我们需要知道,在用C++编写hadoop应用程序时,需要包含三个头文件:#include "Pipes.hh"#include "TemplateFactory.hh"#include "StringUtils.hh"这三个文件在hadoop安装包的 “c++\Linux-amd64-64\include\” 或 “c++\Linux-i386-32\inclu 阅读全文
posted @ 2012-05-30 18:08 ghost&240 阅读(3893) 评论(0) 推荐(0) 编辑
摘要: 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这似乎并不治本。epoll的接口非常简单,一共就三个函数:1. int epol 阅读全文
posted @ 2012-05-30 18:06 ghost&240 阅读(284) 评论(0) 推荐(0) 编辑
摘要: Linux修改环境变量,很简单但很重要一、Linux的变量种类按变量的生存周期来划分,Linux变量可分为两类:1. 永久的:需要修改配置文件,变量永久生效。2. 临时的:使用export命令行声明即可,变量在关闭shell时失效。二、设置变量的三种方法1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。例如:编辑/etc/profile文件,添加CLASSPATH变量# vi /etc/profileexport CLASSPATH=./JAVA_HOME/lib 阅读全文
posted @ 2012-05-30 17:59 ghost&240 阅读(5891) 评论(0) 推荐(2) 编辑
摘要: 1创建线程就像std::fstream类就代表一个文件一样,boost::thread类就代表一个可执行的线程。缺省构造函数创建一个代表当前执行线程的实例。一个重载的构造函数以一个不需任何参数的函数对象作为参数,并且没有返回值。这个构造函数创建一个新的可执行线程,它调用了那个函数对象。起先,大家认为传统C创建线程的方法似乎比这样的设计更有用,因为C创建线程的时候会传入一个void*指针,通过这种方法就可以传入数据。然而,由于Boost线程库是使用函数对象来代替函数指针,那么函数对象本身就可以携带线程所需的数据。这种方法更具灵活性,也是类型安全(type-safe)的。当和Boost.Bind这 阅读全文
posted @ 2012-05-30 17:55 ghost&240 阅读(412) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页