CreateFileA 用法
摘要:Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, and pipe. The function returns a handle that can be used to access the file or device for var.
阅读全文
C++ 异常处理
摘要:严格的说,每条语句都有可能产生运行错误(异常),即便是一条简单的赋值语句,如 int a = 5;当堆栈分配完毕,这样的语句就会造成程序崩溃,(这种情况是非常少的,呵呵)严格讲,需要对每一条语句进行异常检测,但是这也是不切实际的,上面所说的情况只可能在一个极端的情况下才会产生。 目前的程序只是尽可能的对错误进行捕获处理,或在底层通过硬件借口的状态寄存器等判断是否发生错误,或通过调用函数的返回值进行错误的处理。常用的一种方式是try,catch模块来处理, try:用于判断执行的语言是否有异常发生。 catch用于对捕获的异常进行处理。 throw:可以人为的抛出异常,主要用于人为定义异常。i.
阅读全文
友元函数
摘要:在大多是的时候,大家都说一般情况下不要使用友元函数,因为它破坏了类的封装,但是有时候用友元函数也是一种不错的选择。1,当需要比较两个不同类的大小(肯定是比较类的一个成员变量),这个时候就需要用友元函数效率就比较高,代码如下:class B; //class B implementclass A{private: int x;public: A(int n) { x = n; } friend int check(A a, B b);};class B{private: int x;public: B(int n) { ...
阅读全文
setsockopt ioctlsocket 设置非阻塞SOCKET函数
摘要:1,ioctlsocket()#include <winsock.h>This function controls the I/O mode of a socket.int ioctlsocket( SOCKET s, long cmd, u_long FAR* argp);Parameterss[in] Descriptor identifying a socket.cmd[in] Command to perform on socket s.argp[in, out] Pointer to a parameter for cmd.Return ValuesIf no error
阅读全文
C++ 内存分配 学习笔记
摘要:1,C++中有5个内存的分配区:堆,栈,常量存储区,自由存储区,全局\静态存储区。 自由存储区,用malloc和free分配和释放,同堆差不多。 全局\静态存储区:用于存储分配的全局和静态变量。2,堆和栈的区别 主要的区别由以下几点: 1、管理方式不同;堆有编译器管理,栈由程序员管理,比较容易产生memory leak 2、空间大小不同;在32位中,堆理论的大小是4G,所以没有什么限制,但是栈的默认大小是1M,可以设置,但是如果长度过大,会增加内存的开销和启动的时间。 3、能否产生碎片不同;堆用new和delete分配,肯定会造成空间不连续,比较容易产生碎片,栈是按照严格的先进后出的,所...
阅读全文