gcc不太好用

最近一直在linux上写程序,先把x windows上所有听说过没有听说过的IDE都装了一遍,非常的不好用,然后又逐个的试windows上的远程调试软件, 如Magic c++,uniwin等,还是国人写的软件,都用不了,甚至Magic c++在网站上提供的for linux的免费版本,编……

阅读全文

fopen的诡异问题

前段时间写了一个多线程下载的程序,启动多个线程,每个线程负责下载一段程序,本地写的时候,先计算好offset,然后调用fseek移动文件指针,再调fwrite就可以. 为了支持断点续传,在当前文件已经存在的情况下,使用fopen(“xxx”,“a……

阅读全文

static函数不是多线程安全

Static function variable in multithread 今天花了4个小时来折腾这个.在写一个多线程下载程序,突然发现下载下来的数据包不对,先是怀疑数据拼接有问题,然后是怀疑网络传送端有问题,一个一个的dump出来看.然后用脚本一个一个字节的比对.最后,才知道原来是这个. 1 2 3 4 5 void CSimpleSocket::Read(string & buf) { static char buf[BUF_SIZE]; //.... } 这种function scope 的s……

阅读全文

Delphi中的hash table

Hash table ,也叫做字典,是任何数据结构教材都会提到,O(0)的访问性能让它得到很广阔的应用,STL中也有map,hashmap,当然map一般是使用平衡BST来实现的,但是外部使用接口和hash table差不多。 dict和list,scalar(string和numbers)组成了py……

阅读全文

bittorrent代码分析

因为工作原因,仔细研究过bt下载程序.sf.net上面搜索bittrorrent前10位的代码,我一一看过 现在好像有比较多的人研究这个,所以我把我的心得写下来和大家交流. bittorrent从技术角度并不难,关键是idea非常新颖,官方网站上的那幅图就描述的非常清楚了.从大的方向……

阅读全文

delphi无法断点调试的原因

前天出现这个问题,到网上搜索了一下,一般说是编译加上了优化选项. 在ide里面这样设置即可: compiler->debug information check上就ok 道理也很简单.这就算作本人blog的第一片文章吧,立此存照!……

阅读全文