代码改变世界

Linux内核中大小端判定宏

2015-07-21 10:09 by 哦万里云, 1445 阅读, 0 推荐, 收藏, 编辑
摘要:#include static union{ char c[4];unsigned long mylong;} endian_test = { {'l','?','?','b'} };#define ENDIANNESS ( (char) endian_test.mylong )int main(... 阅读全文

TCP_NODELAY

2015-07-11 15:43 by 哦万里云, 260 阅读, 0 推荐, 收藏, 编辑
摘要:启用TCP_NODELAY的情况下:客户端程序C连接到服务器程序S;C仅接受数据,S仅发送数据S循环调用send发送长度很小的数据包比如:10字节;在C上用任务管理器查看到C的上行流量大约是下行流量的1/3左右问题:C没有发送任何数据为啥有那么多的上行流量?分析:关闭TCP_NODELAY,每次调用... 阅读全文

SO_REUSEADDR

2015-07-11 15:20 by 哦万里云, 187 阅读, 0 推荐, 收藏, 编辑
摘要:问题:Linux的服务器程序,关闭后马上启动,经常报错,说是端口已经被占用,不过稍等一会儿就可以启动了。原来我们在调用closesocket把已绑定端口的socket关闭时,这个socket并没有立即消失,而进入了TIME_WAIT状态。解决方法:setsockopt(....,SO_REUSEAD... 阅读全文

windows下使用pthreads

2015-07-06 17:06 by 哦万里云, 636 阅读, 0 推荐, 收藏, 编辑
摘要:pthread-win32在Windows上实现了线程相关的Posix标准,接口一模一样包含:threadmutexcondswlockspinsembarrierhttps://sourceware.org/pthreads-win32/ 阅读全文

离线下载Windows 调试符号 Symbols

2015-06-24 12:37 by 哦万里云, 2533 阅读, 0 推荐, 收藏, 编辑
摘要:公司开发机没有不能连接到互联网。调试程序时那些Windows模块(如ntdll.dll)不能加载符号,而程序总是崩在这些模块里。想看一眼到底崩在了什么地方。需要把对应的符号下载下来。使用工具symchk:/om/im需要添加环境变量:_NT_SYMBOL_PATHSRV*e:\mysymbol* h... 阅读全文

Linux下原子性操作,类似Windows下的InterLockedXXX

2015-06-23 16:57 by 哦万里云, 863 阅读, 0 推荐, 收藏, 编辑
摘要:其中,这些操作的操作数(type)可以是1,2,4或8字节长度的int类型,即:int8_t / uint8_tint16_t / uint16_tint32_t / uint32_tint64_t / uint64_ttype __sync_fetch_and_add (type *ptr, ty... 阅读全文

VS2010 AlwaysCreate

2015-06-18 18:22 by 哦万里云, 624 阅读, 0 推荐, 收藏, 编辑
摘要:VS2010 解决方案里有两个工程,每次按F7编译都会链接一次。链接完成再按F7又会链接一次。。。。。提示:正在创建“Debug\testb.unsuccessfulbuild”,因为已指定“AlwaysCreate”。1>ClCompile:哪来的AlwaysCreate:MSDN上说:Most ... 阅读全文