linux c
文章平均质量分 80
MindChange
这个作者很懒,什么都没留下…
展开
-
编译so动态库出现relocation R_X86_64_32 against `a local symbol
最近在编译动态库so的时候,总是出现:/usr/bin/ld: md5.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPICmd5.o: could not read symbols: Bad value查了原创 2015-07-16 11:38:18 · 2968 阅读 · 0 评论 -
服务端用system()执行shell命令获取执行结果(排除signal影响)
最近在工作中遇到在服务端程序中需要执行shell命令,并获取执行结果的问题。 由于在服务端程序中一般会设置忽略子进程的信号处理:signal(SIGCHLD, SIG_IGN);所以如果直接使用system()执行,并获取返回值作为命令执行成功与否的判断,是不合理的,这样会经常返回-1,但是命令实际上已经成功执行了。网上搜索了一下处理方法:signal(SIGCHLD, SIG_DFL原创 2015-07-03 10:34:56 · 2140 阅读 · 0 评论 -
C判断一个数是2的次方、求给定数的最近的2的次方值
/*! * \brief Computes the next highest power of two * * This nice little algorithm is taken from * http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 */static uint32_t round_nex原创 2015-09-09 17:46:23 · 518 阅读 · 0 评论 -
Strace诊断CPU跑高问题
手把手教你用Strace诊断问题发表于2015-10-16早些年,如果你知道有个 strace 命令,就很牛了,而现在大家基本都知道 strace 了,如果你遇到性能问题求助别人,十有八九会建议你用 strace 挂上去看看,不过当你挂上去了,看着满屏翻滚的字符,却十有八九看不出个所以然。本文通过一个简单的案例,向你展示一下在用 strace 诊断问题时的一些套路。转载 2015-10-23 17:58:06 · 5186 阅读 · 1 评论 -
使用automake编译程序
使用autoconf、automake编译符合自由软件管理的程序原创 2015-12-16 13:37:52 · 722 阅读 · 0 评论 -
libcurl in multithreads
libcurl在多线程中使用时,需要设置CURLOPT_NOSIGNAL为1,否则会引起程序crash。 但是设置了CURLOPT_NOSIGNAL之后,在域名dns解析时,设置的超时就不起作用,这样容易引起整个任务超时。此时,解决此问题,使超时设置生效的方法是:重新编译libcurl,使c-ares生效(异步解析dns),具体方法如下:1. 安装c-ares: yum install c原创 2017-07-24 16:52:11 · 440 阅读 · 0 评论