随笔分类 - c/c++
多线程编程简介
摘要:http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一...
阅读全文
winsock的io模型(终极篇)
摘要:最近在看服务器框架的搭建,看了不少,都是零零碎碎的,觉得看的差不多了,可以写点最后的总结了,然后,竟然发现了这篇文章,总结做的特别好,肯定比我总结写要好多了,所以我也就不写了,直接转吧。。。。。。套接字模式:锁定、非锁定套接字I/O模型: select(选择)WSAAsyncSelect(异步选择)...
阅读全文
ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?
摘要:1.ioctlsocket()简述:控制套接口的模式。#includeintPASCALFARioctlsocket(SOCKETs,longcmd,u_longFAR*argp);s:一个标识套接口的描述字。cmd:对套接口s的操作命令。argp:指向cmd命令所带参数的指针。注释:本函数可用于任...
阅读全文
IOCP~~
摘要:下载源代码原文网址:http://www.codeproject.com/KB/IP/iocp_server_client.aspx源码使用了高级的完成端口(IOCP)技术,该技术可以有效地服务于多客户端。本文提出了一些IOCP编程中出现的实际问题的解决方法,并提供了一个简单的echo版本的可以传输...
阅读全文
socket API详解
摘要:send函数intsend(SOCKETs,constcharFAR*buf,intlen,intflags);不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数...
阅读全文
重叠IO
摘要:一、 异步IO 说到重叠模型首先还是提一下异步IO比较好,因为从本质上讲,重叠模型也是一种异步IO模型。 我们知道,相对于计算机执行的其他操作而言,设备IO(文件、管道、套接字等)是比较慢的。于是在多线程结构中就考虑到采用异步的方式进行设备读写操作,即我们告诉系统对设备的读写数据,而同时应用程序的其...
阅读全文
重叠io操作
摘要:第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性...
阅读全文
WSAGetOverlappedResult函数
摘要:WSAGetOverlappedResult函数通过WSAWaitForMultipleEvents函数来得到重叠操作完成的通知,那么自然也需要一个函数来查询一下重叠操作的结果,定义如下BOOL WSAGetOverlappedResult( SOCKET s, // SOCKET,不用说了 LPW...
阅读全文
WSAWaitForMultipleEvents
摘要:WSAWaitForMultipleEvents函数 熟悉WSAEventSelect模型的朋友对这个函数肯定不会陌生,不对,其实大家都不应该陌生,这个函数与线程中常用的WaitForMultipleObjects函数有些地方还是比较像的,因为都是在等待某个事件的触发嘛。 因为我们需要事件来...
阅读全文
strncasecmp与strcasecmp用法
摘要:strcasecmp strcasecmp(忽略大小写比较字符串) 相关函数 bcmp,memcmp,strcmp,strcoll,strncmp 表头文件 #include 定义函数 int strcasecmp (const char *s1, const char *s2); 函数...
阅读全文
C语言之strrchr函数
摘要:【FROM MSDN && 百科】原型:char *strrchr(const char *str, char c);#include 找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果...
阅读全文
strrchr()函数
摘要:strrchr()函数:strrchr()函数的作用是: 查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符; 如果未能找到指定字符,那么函数将返回False。char *strrchr( char *str, int c );strrchr(...
阅读全文
c++ vector反转reverse
摘要:[cpp] view plaincopytemplatevoidreverse(BidirectionalIteratorfirst,BidirectionalIteratorlast);[cpp] view plaincopy如果不是改变原来的容器,而是翻转之后放在新容器里面,直接用reverse...
阅读全文
C++的异常处理
摘要:一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具...
阅读全文
c+内存管理机制
摘要:内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的 检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过 的,除非放弃C+...
阅读全文
右左法则----复杂指针解析
摘要:右左法则----复杂指针解析因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个...
阅读全文
int *a[] 与(int *)a【5】的区别
摘要:*a[5]是指针数组可以指向5个值(*a)[5]是一个指针,但这个指针只能指向包含5个元素的一维数组 a是一个数组,每个元素都是个指针。b是一个指针,指向一个数组1.int*a[5]:指针数组。本质是数组。sizeof(a)=20。sizeof计算数组的大小。5个int型即为20.sizeof(...
阅读全文
C++笔记16之const的用法总结
摘要:const主要是为了程序的健壮型,减少程序出错.最基本的用法:[cpp] view plaincopyconstinta=100;b的内容不变,b只能是100也就是声明一个int类型的常量(#defineb=100)intconstb=100;//和上面作用一样const指针和引用一般用在函数的参数...
阅读全文
string转换成char*
摘要:string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();2.c_str如:string str="gdfd"; char *p=str.c_str();3. co...
阅读全文
_variant_t与其他数据类型的转换
摘要:转自:http://kuaixingdong.blog.hexun.com/29627840_d.html我们先看看COM所支持的一些类型的基本类:(微软提供,在comdef.h中定义)在COM中使用的标准类Class如下所示:_bstr_t:对BSTR类型进行打包,并提供有用的操作和方法;_com...
阅读全文