- 博客(14)
- 资源 (18)
- 收藏
- 关注
转载 UNREFERENCED_PARAMETER 的作用
我们从 UNREFERENCED_PARAMETER 开始吧。这个宏在 winnt.h 中定义如下: #define UNREFERENCED_PARAMETER(P) (P) 换句话说 UNREFERENCED_PARAMETER 展开传递的参数或表达式。其目的是避免编译器关于未引用参数的警告。许多程序员,包括我在内,喜欢用最高级别的警告 Level 4(/W4)进行编译。Level 4
2009-11-30 17:14:00 441
转载 malloc & calloc
用malloc()函数更好还是用calloc()函数更好函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void*malloc(size_tsize);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void*calloc(size_tnumEl
2009-11-30 17:12:00 434
转载 CloseHandle
Closing a thread handle does not terminate the associated thread. To remove a thread object, you must terminate the thread, then close all handles to the thread.引自MSDN 1,线程和线程句柄(Handle)不是一个东西,线程
2009-11-30 16:59:00 543
转载 守护进程
守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进程程序。因为守
2009-11-29 19:27:00 514
转载 Linux下的多进程编程初步
多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程程序的一些初步知识。 -------------------------------------------------------------------------------- 正文: L
2009-11-29 17:52:00 682
转载 WSAAsynSelect()模型的关键是要搞清楚各种事件的触发条件
使用WSAAsynSelect()模型的关键是要搞清楚各种事件的触发条件,不然会造成读或写数据混乱。这些事件的触发条件同样适用于CAsyncSocket=======================[1]FD_READ事件触发条件:1.在数据到达socket后,并且从来没有触发过FD_READ(也就是最开始的阶段)2.在数据到达socket后,并且前一个recv()调用后3.调用recv()
2009-11-29 01:59:00 1287
转载 阻塞模式下的send、recv、close
对于send函数: send函数只负责将数据提交给协议层。 当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲区的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR; 如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据; 如果是就等待协议把数据发送完,如果协议还没有开始发送
2009-11-29 00:54:00 5389
转载 C++经典书籍和C经典书籍
C++经典书籍 《C++ Primer》 http://www.china-pub.com/28767 《The C++ Programming Language》 http://www.china-pub.com/6591 《Effective C++》 http://www.china-pub.com/30737 《More Effective C++》 http://www.china
2009-11-27 13:00:00 1220
转载 内联函数
介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如 #define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。
2009-11-26 23:11:00 580
原创 解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Pa
2009-11-26 22:38:00 421
转载 关于oracle字符集
分类:Oracle一.引言 ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持,ORACLE为用户提供自己熟悉的数据库母语环境,诸如日期格式、数字格式和存储序列等。Oracle可以支持多种语言及字符集,其中
2009-11-26 11:52:00 587
转载 _W64 & _WIN64
INT_PTR int(_W64 int即__w64 int) * _W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键字 用于指针运算 看这段宏: #if defined(_WIN64) typedef __int64 INT_PTR, *PINT
2009-11-14 10:58:00 3843 1
转载 WinPcap编程
WinPcap是一个开源的、运行于Win32平台下的体系结构,它的主要功能是进行数据包捕获和网络分析。它允许应用程序通过协议栈捕获和传输网络数据包,也包括内核级别的数据包过滤、网络静态引擎和支持远程数据包捕获等有用的功能。WinPcap由两部分组成:1. 驱动程序: 扩展操作系统功能提供低层次的网络访问2. 动态链接库:运行在Win32平台上的应用
2009-11-14 10:48:00 1525
转载 ICMP 的漏洞分析(付原代码)
在IP中的结构是这样的. VERSION 4 IHL INTERNET HEADER LENGTH IN 32-BITS TYPE OF SERVICE 0 TOTAL LENGTH LENGTH OF INTERNET HEADER AND DATA IN 字节单位 IDENTIFICATION, FLAGS 分割和重组IP的标记. TIME TO LIVE
2009-11-02 11:49:00 1785
网络拓扑 自发现
2013-09-05
一步一步教你51_PC串口通信
2008-09-12
C#高级网络编程.pdf
2008-09-09
《C#案例开发》源代码
2008-09-09
Symbian OS.C++ 移动开发讲义.pdf
2008-09-08
智能手机操作系统编程Symbian及60系列.pdf
2008-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人