![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
magic_feng
从事游戏开发,爱好计算机技术、运动、围棋(业余5段)
微博:http://weibo.com/1797360417
展开
-
C/C++拾遗
在使用c/c++时有许多细节和技巧需要注意的,但很多时候时间一长不用就忘掉了,故一点一滴记录下来,以作备忘!1、函数调用 函数调用的参数不改变参数内容的应在参数前加上const,如void function(const char * ServerName),防止误修改。 但函数参数是结构体或者对象时,传入的参数应为指针或者引用,如void function(st原创 2009-12-08 18:39:00 · 547 阅读 · 0 评论 -
nginx网络层分析
近来有空阅读了一下高性能开源http服务器nginx的源代码,因为整个代码有接近10w行,所以只能先分析一下我比较关心的网络层的连接处理。首先从主函数main进去,前面的配置初始化先略过,看到如下代码: if (ngx_process == NGX_PROCESS_SINGLE) { ngx_single_process_cycle(cycle);原创 2011-10-24 20:25:28 · 2253 阅读 · 0 评论 -
linux基本的查找文件
sudo find / -name "event.h"原创 2011-09-06 11:14:40 · 449 阅读 · 0 评论 -
windows判断本机网络连接的方法
InternetGetConnectedState原创 2011-08-05 14:18:22 · 974 阅读 · 0 评论 -
tcp长连接判断对方断开的方法
1、心跳包2、keepalive检测,对于设置了keepalive来说,当tcp检测到对端socket不再可用时(不能发出探测包,或探测包没有收到ACK的响应包),select会返回socket可读,并且在recv时返回-1,同时置上errno为ETIMEDOUT。此时TCP原创 2011-08-01 19:52:12 · 7940 阅读 · 0 评论 -
多叉树的递归和非递归遍历
void travel(Node *pNode){ stack stack; stack.push(pNode); Node *lpNode; while(!stack.empty()) { lpNode = stack.top();原创 2011-07-19 20:54:43 · 15374 阅读 · 2 评论 -
visual studio 运行命令行参数
Project->xxx Properties打开对话框 Configuration Properties->Debugging Command arguments输入参数原创 2011-06-22 19:36:00 · 1327 阅读 · 0 评论 -
c函数指针和c++类成员函数指针
<br /> c的函数指针还是很简单的,很好用的,直接看代码吧<br />#include <stdio.h>void cFunction(){ printf("cFunction;/n");}//c函数int main(void){ //定义新类型 CFunc typedef void( *CFunc)(); //把函数地址进行赋值 CFunc func = &cFunction; //the same as cFunc原创 2011-04-21 19:18:00 · 575 阅读 · 0 评论 -
解决visual studio有时无法设置断点的问题
Tools->Options,选择dubegging->General,把一项Require source files to exactly match the original version的打钩去掉原创 2011-06-03 15:05:00 · 2702 阅读 · 0 评论 -
指向指针的指针 **
c/c++的指针是难点,很多地方都有提及,就不一一概述了。这里说说指向指针的指针的作用。1、指向一种自定义类型。可能我是从高级语言(JAVA、python等)过来的,所以喜欢这样描述,例如认为int、long等是值类型,struct xx的为自定义类型。所以当定义一指向结构体的指针 struct xx *sp时,又需要有个变量能指向不同的像这样的指针时就用指针的指针吧,如void **原创 2010-04-20 19:00:00 · 557 阅读 · 0 评论 -
windows下的第一个makefile程序
今天比较闲,研究了一下Makefile,这是自己第一次写Makefile,虽然一直听说其大名,但都是流于理论与书籍。今天决定自己实践一次,好,废话少说。1、先写一个hello world的main.c#include int main(){ printf("hello world/n"); getch();} 2、下载并安装win原创 2010-03-22 19:34:00 · 712 阅读 · 0 评论 -
关于EPOLLOUT
EPOLLOUT只有在缓冲区已经满了,不可以发送了,过了一会儿缓冲区中有空间了,就会触发EPOLLOUT,而且只触发一次原创 2011-12-13 17:41:00 · 757 阅读 · 0 评论