今天切到一台新的机器上去开发,编译的时候发现 gcc 的输出带着问号,就像这个样子
src/BusiObj.cpp: In member function ?.nt CBusiObj::DecodeUdp(int&, int&, const char*, int)?.
src/BusiObj.cpp:287: warning: format ?.d?.expects type ?.nt?. but argument 6 has type ?.ong unsigned int?
src/Busi…… 阅读全文
Monthly Archives: December 2013
netstat 查看连接的时候打印进程名
这个本来是个很基本的需求啊,搜了一下,stackover flow 上面有讨论,在这里,http://stackoverflow.com/quest…
Try
ps -p $(lsof -ti tcp:80) o comm=,pid=
or
netstat -tlnp | awk ‘/:80 */ {split($NF,a,”/”); print a[2],a[1]}’
好麻烦,而且跑不了,后来发现加一个 -p 参数就可以了。…… 阅读全文
Linux 下删除乱码文件名的文件
使用 rz 往服务器上传文件的时候,出错了,遗留下来的文件名是乱码,这个问题,使用 rz -be 可以解决,可以顺利上传文件,但是在删除残留文件的时候发现悲剧了,查了一下看到这里,http://www.jb51.net/LINUXjishu…
linux下删除乱码文件名, 不废话:
1. ls -i 列出文件的节点ID, 如: 123456789
2. find ./ -inum …… 阅读全文
pthread_self 和 gettid 的性能区别
打日志的时候,我们希望把线程 id 打印出来,线程 id 有两个方法可以获取,gettid 和 pthread_self,前者是一个 Linux 的系统调用,后者是一个可移植的库函数,可移植性倒还好,因为也不怎么考虑跨平台,另外一个区别,就是他们的返回值不一样,这个可以看到这里,http://stackoverflow.com/quest…,有一个讨论,摘…… 阅读全文
STL set 的一些实现差异
侯捷大师在 STL 源码剖析中说道,set 的迭代器的值是不可改变的,这个本来很好理解,但是我神奇的在 visual studio 2005 上发现,神奇的事情总是会发生
#include <stdio.h>
#include <map>
#include <string>
#include <set>
int main() {
std::set<int> setInt;
setIn…… 阅读全文
基于队列的 UDP 多线程收发 demo
来看这个代码
#include <stdio.h>
#include <assert.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <fcntl.h>
#include <string.h>
#include <sys/epoll.h>
#include <netinet/in.h>
#include <arpa/inet.…… 阅读全文
Linux 查看两个文件的交集
这个是很常见的需求,假如两个文件
123
456
789
123
789
abc
我等劳模,上来就挽袖子,自己写脚本了
#!/usr/bin/env python
import sys
def calc_uniq(file1, file2):
file1 = open(file1)
file2 = open(file2)
set1 = set()
set2 = set()
for line in file1:
se…… 阅读全文
gcc 查看链接库路径
当我们想知道 gcc 在链接的时候使用了什么库的时候,可以使用这样的命令
$ gcc --print-file-name=librt.so
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64/librt.so
之前用过一次,今天再用的时候差点又忘了,简单记一下
阅读全文