上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 使用 php ssh2 模块可以在php程序中远程执行命令,只要编写一些简单的脚本工具就能实现对远程服务器的集中管理,大大简化系统运维工作的繁琐。安装1. 安装 libssh2 库从 http://www.libssh2.org/下载源代码安装即可。2. 安装 ssh2 模块从 http://pecl.php.net/package/ssh2下载源代码包,安装步骤:/usr/local/php/bin/phpize./configure --with-ssh2 && makecp.libs/ssh2.so /data/php/lib/php/extensions/no-debu 阅读全文
posted @ 2011-04-02 11:12 edwardlost 阅读(4895) 评论(0) 推荐(1) 编辑
摘要: C++ 工程实践(5):避免使用虚函数作为库的接口中详细阐述了使用虚函数做动态库接口在版本升级管理上的诸多弊病,即存在二进制兼容性问题;博主陈硕同学推荐使用 Pimpl Idiom(别称:Handle/Body Idiom)来替代虚函数作为动态库的接口,下面列举一些关键点。 考虑多采用 non-member non-friend function in namespace 作为接口。为什么 non-virtual 函数比 virtual 函数更健壮?因为 virtual function 是 bind-by-vtable-offset,而 non-virtual function 是 bind 阅读全文
posted @ 2011-04-01 11:11 edwardlost 阅读(1528) 评论(0) 推荐(2) 编辑
摘要: boost::bind(&klass::member, instance, 0, _1) 返回一个函数对象,类似于:structunspecified_type{...somemembers...return_typeoperator()(inti)const{returninstance->*&klass::member(0,i);}返回值 return_type 和参数 int 是通过 klass::member 的函数签名以及 bind 绑定式的参数列表推断出来的。boost::function 并不进行类型检查,可以使用任意函数签名式(模版参数)和任意可调用物来创 阅读全文
posted @ 2011-03-24 15:21 edwardlost 阅读(2790) 评论(0) 推荐(1) 编辑
摘要: boost::serialization 基于 boost::archive 来完成任意复杂数据结构的序列化,boost::archive提供两个实现类来完成序列化、反序列化操作:boost::archive::text_oarchive 序列化数据,也称为:输出、保存(save)boost::archive::text_iarchive 反序列化数据,也称为:输入、载入(load)&操作符序列化操作使用 << 或者 & 操作符将数据存入text_oarchive中:ar<<data;ar&data;反序列化操作使用 >> 或者 &a 阅读全文
posted @ 2011-03-16 12:06 edwardlost 阅读(3091) 评论(0) 推荐(1) 编辑
摘要: 在C++中函数只能返回一个值,std标准库中也没有能很好满足tuple功能的类实现,boost::tuple 则填补了这一空缺。 元素目前版本的boost::tuple支持0~10元素,元素类型可以是任何C++的类型。1tuple<int>2tuple<double&,constdouble&,constdouble,double*,constdouble*>3tuple<A,int(*)(char,int),B(A::*)(C&),C>4tuple<std::string,std::pair<A,B>>5tu 阅读全文
posted @ 2011-03-10 11:27 edwardlost 阅读(6868) 评论(0) 推荐(0) 编辑
摘要: 一篇去年的新闻,刚看到,讲系统架构方面的,值得一读。http://tech.sina.com.cn/i/2010-11-16/14434871585.shtml 阅读全文
posted @ 2011-03-09 15:03 edwardlost 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: 将文件中的行赋值给数组变量HOST_LIST=(`cat crontab.vhosts`) 阅读全文
posted @ 2011-03-03 12:31 edwardlost 阅读(311) 评论(0) 推荐(0) 编辑
摘要: scoped_ptrscoped_ptr指针对象在其析构时或者显示调用reset方法时会确保其所指向的对象(使用new表达式创建的)会被删除。scoped_ptr指针不存在shared-ownership或transfer-of-ownership的问题,它指向对象的ownership是由其scope决定的;因为scoped_ptr指针的简单,它的效率几乎了原始指针类型一样,并且也没有额外的存储消耗。scoped_ptr不能用于C++标准库中的容器类;并不适用用数组指针。shared_ptrshared_ptr指针对象使用内部计数器管理其所指向的动态分配对象,并保证当最后一个指向该动态分配对象 阅读全文
posted @ 2011-03-01 13:56 edwardlost 阅读(1347) 评论(0) 推荐(0) 编辑
摘要: 使用RAND()获取随机结果在ORDER BY语句中可按照如下的随机顺序检索数据行: mysql> SELECT * FROM tbl_name ORDER BY RAND();ORDER BY RAND()同 LIMIT 的结合从一组列中选择随机样本很有用:mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d -> ORDER BY RAND() LIMIT 1000;GROUP BY列别名数据表没有day字段(date型),只有ctime字段(datetime型),但需要按天进行汇总统计:mysql> se 阅读全文
posted @ 2011-03-01 13:55 edwardlost 阅读(377) 评论(0) 推荐(0) 编辑
摘要: boost::intrusive_ptr一种“侵入式”的引用计数指针,它实际并不提供引用计数功能,而是要求被存储的对象自己实现引用计数功能,并提供intrusive_ptr_add_ref和intrusive_ptr_release函数接口供boost::intrusive_ptr调用。下面通过一个具体的例子来说明boost::intrusive_ptr的用法,首先实现一个基类intrusive_ptr_base,定义intrusive_ptr_add_ref和intrusive_ptr_release函数来提供引用计数功能。用户类类型需要继承intrusive_ptr 阅读全文
posted @ 2011-02-17 15:28 edwardlost 阅读(15614) 评论(2) 推荐(2) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页