使用 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
之前用过一次,今天再用的时候差点又忘了,简单记一下
阅读全文
PHP 代码行 diff 实现
今天拿到一个很神奇的函数,可以把新旧代码行的差异显示出来,说神奇是因为他的实现很简洁
<?php
//$old = 'h e l l o o o o o o o o / o o o o o 1 2 3 4';
//$new = 'h e l l o o o 0 0 ? o o o o o o o o o 1 A 3 4';
$old = 'hellllooo1234';
$new = 'helllO11OOoo1234';
function diff($old, $new){
…… 阅读全文
基于 AC 自动机的多模匹配的 map
昨天写了一个 AC 自动机的模版题,现在,我们需要基于这个模版,实现一个多模匹配的 map,具体是这样的,我们给一个 map<string, int>,然后给一个串,要求在这个串里面,把 map 中含有的 key 的 value 都返回出来。
注意到昨天的模版题的实现,是会去改动树本身的,同时也没有做一些内存管理方面的处理,另外的区…… 阅读全文
AC 自动机
hdu 2222 题。。(这题号。。。)http://acm.hdu.edu.cn/showprob…
#include <iostream>
#include <stdio.h>
#include <memory.h>
#include <string>
#include <queue>
#define CHAR_COUNT 26
class Node {
public:
Node() {
memset(this, 0, sizeof(*t…… 阅读全文
libevent 库上手
先来看一个基于定时器的事件驱动
#include <stdio.h>
#include <event.h>
void onTime(int sock, short event, void* arg) {
printf("hi there\n");
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
event_add((struct event*)arg, &tv);
}
int main(…… 阅读全文