擅长面向对象设计、C++程序开发,在金山和华为呆过,互联网从业十多年,有分布式计算和存储系统经验。
1) 关闭指定网卡,如关闭网卡eth0 ifconfig eth0 down 也可以使用ifdown,通常ifdown是一个指向ifup的软链接,而ifup为一个脚本文件。 2) 命令自启动,如希望机器重启时自动关闭网卡eth0 这个只需要在文件/etc/rc.d/rc.local中添加一行“ifconfig eth0 down”即可。
GCC编译时的静态库依赖次顺问题.pdf 相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html相关博文:http://blog.
假设有如三个源代码文件: $ cat a.cpp void a() { } $ cat b.cpp extern void a(); void b() { a(); // 调用a.
pthread_rwlock_rdlock和“No such file or directory” 调用pthread_rwlock_rdlock时,如果失败报错“pthread_rwlock_rdlock”,则可能是因为对同一把锁先加了写锁,再加读锁时就报这个错误了。
Thrift线程和状态机分析.pdf 目录 目录 1 1. 工作线程和IO线程 1 2. TNonblockingServer::TConnection::transition() 2 3.
Haodoop RPC解析.pdf 1. 前言 1 2. Hadoop RPC 1 2.1. 总体结构 1 2.1.1. RPC Interface 1 2.
插件网址为:http://thrift4eclipse.sourceforge.net/en/install.html,经测试对Eclipse 4.4.2也有效:Eclipse 4.4.
check_syscall.zip 随内核版本的变化,会增加一些新的系统调用,但如果glibc没有跟上,则不能直接调用,这个时候可以自己包装一下。如果想知道内核是否支持某系统调用,先得知道它的系统调用ID号,下面代码即是用来检查是否支持epoll_create1: // 文件名: x.
使用StarUML 5.0打开一个已有的文件时,如果遇到报“Failed to open the model file. Invalid file format.”错误,则原因可能是因为文件所在路径包含了中文,比如被打开的文件全路径为:D:\笔记\mooon.uml。
较早之前使用Delphi开发的开源UML工具StarUML,到5.0后多年来一直未有更新,从StarUML-v2.5.0官网看,它就是StartUML的最新版本,支持Windows、Mac OS X和Linux。
Thrift结构分析及增加取客户端IP功能实现.pdf 目录 目录 1 1. 前言 1 2. 示例Service 1 3.
除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词):用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享...
flux.zip(下载上传后,记得chmod +x flux.sh增加可执行权限) #!/bin/sh # 流量统计工具 # 可带一个参数:网卡名,如eth0或eth1等 ...
问题版本:0.9.0 make[4]: Entering directory `/tmp/X/thrift-0.9.0/lib/cpp' /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.
使用Google的dense_hash_map,在插入数据之前,需要先调用set_empty_key()设置一个空Key,Key的值可以为任意符合类型的。但请注意之后插入的Key不能和空Key相同,否则会abort。
10亿用户,同时在线用户1亿数据服务技术方案.pdf 目录 目录 1 1. 一般方案 1 1.1. 用户数据构成 1 1.
lsof用法 A.查看端口被谁占用 lsof -i:port,如:lsof -i:80 B.查看tcp监听端口 netstat -lpnt C.查看udp监听端口 netstat -lpnu D.
CLibssh2可以帮助实现相当于Linux的ssh命令的功能。CLibssh2基于libssh2库(http://www.libssh2.org)实现,不过libssh2的使用较为复杂,而CLibssh2通过封装提供了简单的接口,即可以代码中实现远程执行命令。
用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例:-Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest "-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。
官网:http://www.boutell.com/rinetd/ 下载地址:http://www.boutell.com/rinetd/http/rinetd.tar.gz 编译安装: 对于Windows,包rinetd.tar.gz已包含了编译好的可执行程序文件rinetd.exe,也可以使用VC(如VC6.0)去重新编译。
过大第一个原因是包含了符号表,这个可以通过strip删除,文件大小会立即缩水。strip命令提供了不同参数,方便可选择的删除。 除此之外,两个编译参数“-ffunction-sections”和“-fdata-sections”,以及链接参数“-Wl,--gc-sections”可用来删除没有使用到的符号,“-Wl,”表示后面是传递给链接器ld的参数。
编译libjson_7.6.1可能会遇到如下的问题: makefile:180: Extraneous text after `else' directive makefile:183: *** only one `else' per conditional.
如果使用curl访问https(注意不是http),则会牵涉到OpenSSL,就需要注意多线程安全问题。 一是OpenSSL需要编译成多线程安全版本,二是需要为OpenSSL注册两个回调函数。
#include #include #include HTTPHTMLHeader.h> 如果使用HTTPHTMLHeader则不会指定编码: int main() { cgicc::Cgicc cgi; std::cout HTMLHeader()...
网上主要介绍了python方式编译安装jsoncpp,但它的官网有介绍cmake安装命令行安装方式,以下笔记在SUSE Linux g++ 4.1.0上经过验证。 使用cmake生成Makefile文件,类似于执行automake的“configure”:cmake -DBUILD...
只需要增加如下一个Server配置,可直接放在其它所有Server配置之前: server { listen 80 default_server; server_name _; return 508; } 508 Loop Detected(服务器发现请求中出现一个无穷循环) 有关“_”的说明,可参考官方说明:http://wiki.nginx.org/NginxVirtualHostExample。
GitHub官方的Git Shell和GitHub for Windows配置示例,配置文件“.gitconfig”位于用户主目录下,假设用户名为zhangsan,在Windows7上为:C:\Users\zhangsan\.gitconfig。
效果如下,双击一般人都知道,三击很多人可能未用过:
不用自己写代码,errno.h中提供了两个可直接使用的全局变量,GCC默认打开了宏_GNU_SOURCE: (CUtils::get_program_name(); CUtils::get_program_short_name();)https://github.
用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例: -Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest ("-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。
彻底理解C++指针.pdf 推荐阅读pdf版本,原因是从WPS复制粘贴到ChinaUnix后格式有些丢了。 目录 目录 1 1. 概念 1 1.1.
对于“https”,使用curl时可加参数“-k”,它对应的 C/C++ 代码如下: curl_easy_setopt(_curl, CURLOPT_SSL_VERIFYPEER, 0); //curl_easy_setopt(_curl, CURLOPT_SSL_VERIFYHOST, 0); 作用是:接受服务器的ssl证书而不管合不合法。
gcc编译链接时,如果遇到下面这个错误: ld: attempted static link of dynamic object 则表示一般是因为指定了链接参数-static,它的存在,要求链接的必须是静态库,而不能是共享库。
GCC编译遇到如下的错误,可能是因为在编译时没有指定-fPIC,记住:-fPIC即是编译参数,也是链接参数: relocation R_x86_64_32S against `vtable for CMyClass` can not be used when making a...
接口请浏览:https://github.com/eyjian/mooon/blob/master/mooon/include/mooon/sys/log.h 实现头文件请浏览:https://github.
2015/5/2日:三大杀毒软件评测机构宣布除名360,同时作废360在2015的所有评测结果(这一天,360官网还挂着荣获2015年4月的评测冠军的荣耀)2015/5/3日:360声明传统杀毒评测标准落后云时代,我们正式退出AV-C 不说“AV-C、AV-TEST、VB100”三大杀毒软件评测机构是说对,360就毫无资格说,原因是在此事件之前,360一直拿评测结果做炫耀,既然心底这么不服,为啥还要拿着去炫耀。
继承方式实现简单,请参见:https://github.com/eyjian/mooon/blob/master/common_library/include/mooon/sys/thread.
atomic_gcc.h:103: undefined reference to `__sync_sub_and_fetch_4' 在x86上(x86_64不需要),编译参数需要加“-march=pentium4”,注意不是链接参数。
printf("UniqID: %"PRIu64"\n", uniq_id); test.cpp:35: error: expected `)' before 'PRIu64' make: *** [test.o] 错误 1 上述错误,gcc编译时需要定义宏__STDC_FORMAT_MACROS,并且必须包含头文件inttypes.h。
nohup、&、setsid、fork和fg、bg究竟有啥区别?.pdf 目录 目录 1 1. 名词解释 1 2. 什么是守护进程? 2 2.
最常见于使用SecureCRT等工具远程创建打开终端,下面的代码演示在代码中创建打开终端: // filename: term.cpp // g++ -g -o term term.
进一步理解指针2:双指针、指针数组和数组指针.pdf 目录 目录 1 1. 概念 1 1.1. 双指针 1 1.2. 指针数组 1 1.
Cron运行原理.pdf 目录 目录 1 1. 前言 1 2. 示例 1 3. 工作过程 2 4. 一个诡异的问题 3 5.
先看下列代码的输出是什么? int main() { int m[5] = { 0,1,2,3,4 }; int* p = (int*)(&m+1); printf("%d,%d\n", *(m+1), *(p-1)); return 0; } 要知道这个输出,最关键的是要理解指针操作的“加”和“减”,假设有一指针ptr,则“ptr”中的“1”是指ptr所指类型的大小。
Linux开发环境第三方库规划.pdf 【本文目的】 让工作变得有条理,不乱糟糟,即使存在大量的第三方,也有章可循。简而言之,就是要保持目录的干净(如/usr/local目录),保持文件的干净(如profile文件) 【安装目录建议】 1...
UniqGenerator.pdf 1. 前言 1.1. 目的 UniqGenerator提供一个简单、可靠、高效的、可支撑大容量和大并发的取绝对唯一ID(可以是数字型的,也可以是字符串型的)的通用机制,这里讲的“绝对”是指在同一系统内部的绝对唯一,有别于UUID(通用唯一识别码,Universally Unique Identifier)。
C++源代码:simple_db.zip相关联代码:https://github.com/eyjian/mooon/tree/master/common_library/include #ifndef MOOON_SYS_SIMPLE_DB_H ...
下面这个错误可能是因为DOS(Windows)和Unix文件格式问题: checking whether g++ supports C++11 features by default.
.ibtoolize: AC_CONFIG_MACRO_DIR([./aclocal]) conflicts with ACLOCAL_AMFLAGS=-I ./aclocal 执行libtoolize遇到上面提示的错误时,可能是因为configure.ac和Makefile.am文件是dos格式导致的,使用dos2unix转换一下后再执行,问题可能就解决了。