setproctitle是个很有用的技巧,它的原理是修改进程的argv[0]来达到修改进程命令行显示的效果。
命令行参数argv和环境变量信息environ是在一块连续的内存中表示的,并且environ紧跟在argv后面。
由于修改前后的命令行长度不一样,为了保证argv和environ的连续性,需要新申请一块内存来存放新的argv,environ,就达到了随意修改进程名字的目的。
version `GLIBC_2.7′ not found
今天运行Golang二进制包时,发现提示这个错误:
version `GLIBC_2.7′ not found
老习惯,去Google看下,别人的经验。但无外乎升级glibc这种解决方案。其实Google还不至于这么依赖一个如此新的库!
最终找到解决方案:
cd $GOROOT/src && ./all.bash
ClearSilver 64位机器上编译,test_crc错误的问题
环境:clearsilver-0.10.5,64 bit, SuSE
Running cs regression tests
Failed Regression Test: test_crc.cs
See test_crc.cs.out and test_crc.cs.err
make: *** [test] Error 1
test_crc.cs.err
4c4
< -2128917020
-–
2166050276
test_crc.cs.out
Parsing test_crc.cs
419156592
1357503972
2166050276
test_crc.cs.gold
Parsing test_crc.cs
419156592
1357503972
-2128917020
解决方法:
直接编辑 cs/Makefile,删除 test_crc 相关内容,重新编译。
常用iptables语句
允许本机ping别人
-A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
-A INPUT -i eth0 -p icmp –icmp-type echo-reply -j ACCEPT
允许别人ping本机
-A INPUT -i eth0 -p icmp –icmp-type echo-request -j ACCEPT
-A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT
开放SSH
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp -m tcp –dport 36000 -j ACCEPT
-A OUTPUT -d 192.168.1.0/255.255.255.0 -p tcp -m tcp –sport 36000 -j ACCEPT
允许本机进行域名解析
-A OUTPUT -p udp -m udp –dport 53 -j ACCEPT
-A INPUT -p udp -m udp –sport 53 -j ACCEPT
如果这是一台DNS服务器
-A INPUT -p udp -m udp –dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp –sport 53 -j ACCEPT
注,上面只是参数部分,完整的命令应该说是
iptables -A OUTPUT -p udp -m udp –sport 53 -j ACCEPT
以此类推。
jsoncpp执行时错误: json test src lib json json value…
jsoncpp执行时错误:
json_test: src/lib_json/json_value.cpp:1025: Json::Value& Json::Value::resolveReference(const char*, bool): Assertion `type_ == nullValue || type_ == objectValue’ failed.
原因分析:
Jsoncpp解析非法json时,会自动容错成字符类型。对字符类型取下标时,会触发assert终止进程。
解决方法:
方案1 对Json::Value取下标前,先判断(value.type()==Json::objectValue)。
方案2 启用严格模式,让非法的json解析时直接返回false,不自动容错。
Json::Features f = Json::Features::strictMode();
Json::Reader reader(f);
安装好samba,也启动了,也能看到共享目录,但就是无权限访问?试试: setsebool P samba enable home dirs on
安装好samba,也启动了,也能看到共享目录,但就是无权限访问?试试:
setsebool -P samba_enable_home_dirs on
测试WordPress ios!!
用Wordpress IOS来管理博客真心是个好主意!
C struct initialize
struct SMyOrder
{
int quantity;
int price;
};
int main()
{
static const struct SMyOrder zero_a;
struct SMyOrder a = zero_a;
printf(“price=%d, quantity=%d \n”, a.price, a.quantity);
return 0;
}
发个带颜色的printf: enum zh color set COLOR BLACK =…
发个带颜色的printf:
enum zh_color_set {
COLOR_BLACK = 30,
COLOR_RED,
COLOR_GREEN,
COLOR_YELLOW,
COLOR_BLUE,
COLOR_MAGENTA,
COLOR_CYAN,
COLOR_WHITE
};
void zh_printf(int color, char *fmt, …)
{
va_list ap;
printf(“%c[1;%d;40m”, 0x1B, color);
va_start(ap, fmt);
vprintf(fmt, ap);
va_end(ap);
printf(“%c[0m”, 0x1B);
}
调试vim慢的原因方法: vim startuptime message txt 启动后,查看message txt中,哪个脚本最慢,再考虑能否禁用加载。在我这里,c vim禁用后,快了非常多。…
调试vim慢的原因方法:
vim –startuptime message.txt
启动后,查看message.txt中,哪个脚本最慢,再考虑能否禁用加载。在我这里,c.vim禁用后,快了非常多。
接下来,可以正常使用vim,然后输入命令
:scriptnames
看到列表后,也能发现耗时脚本。这一步,发现可以禁用菜单、禁用翻译(vim需要这些东西么!),又提速不少!