string, CStringA, char*与wstring, CStringW, wchar_t*相互转换

摘要: 1. char*转换为wchar_t*char buf[] = "我是韩长鸣haizeiwanghancm"; wchar_t wbuf[100];1.1. C的方式:最可移植的方式1.1.1. mbstowcssetlocale(LC_CTYPE, ""); mbstowcs(wbuf, ... 阅读全文
posted @ 2014-11-26 16:41 hancmhi 阅读(1278) 评论(0) 推荐(0) 编辑

C++我们必须要熟悉的事之具体做法(2)——资源管理

摘要: 1. 以对象管理资源背后的思想:构造函数获取资源,在析构函数中释放资源。获得资源后立刻放进管理对象:使用RAII(Resource Acquisition Is Initialization):资源获取时机便是初始化时机。管理对象运用析构函数确保资源被释放:一旦对象被销毁,其析构函数会自动被调用,资... 阅读全文
posted @ 2014-09-15 21:50 hancmhi 阅读(169) 评论(0) 推荐(0) 编辑

C++我们必须要熟悉的事之具体做法(3)——类的设计与声明

摘要: 1. 让接口被正确使用最重要的方法是:保持与内置类型的一致性。方法1:外覆类型(wrapper types)例如在需要年月日时,使用struct day {explicit day(int d) : val(d) { }private: int val;};方法2:函数替代对象class month... 阅读全文
posted @ 2014-09-15 21:50 hancmhi 阅读(342) 评论(0) 推荐(0) 编辑

C++我们必须要了解的事之具体做法(1)——构造、复制构造、析构、赋值操作符背后的故事

摘要: 1. C++默认调用哪些函数当类中的数据成员类型是trival数据类型(就是原c语言的struct类型)时,编译器默认不会创建ctor、 copy ctor、assign operator、dctor。只有在这些函数被调用时,编译器才会创建他们。这时候我们要自己创建构造函数,初始化内置数据类型。一般... 阅读全文
posted @ 2014-09-15 21:49 hancmhi 阅读(197) 评论(0) 推荐(0) 编辑

STL hash table, Unordered Contains

摘要: STL hash table, Unordered ContainC++11加入使用hash table实现的Unordered Containers。容器中元素是不排序的,同时我们也不能指定某个元素的位置。头文件:#include unordered_set; unordered_multise... 阅读全文
posted @ 2014-08-10 18:19 hancmhi 阅读(448) 评论(0) 推荐(0) 编辑

多个生产者——多个消费者模型(互斥量条件变量实现)

摘要: 1. 介绍生产者消费者问题属于有界缓冲区问题。我们现在讲述多个生产者向一个缓冲区中存入数据,多个生产者从缓冲区中取数据。共享缓冲区作为一个环绕缓冲区,存数据到头时再从头开始。2. 实现我们使用一个互斥量保护生产者向缓冲区中存入数据。由于有多个生产者,因此需要记住现在向缓冲区中存入的位置。使用一个互斥... 阅读全文
posted @ 2014-08-08 16:40 hancmhi 阅读(6902) 评论(0) 推荐(0) 编辑

将UNIX网络编程卷2的库函数合并到卷1的库函数中

摘要: 源起前面讲述了unix网路编程卷1库函数的配置。但是卷2还有一个配置,而且其中的关于进程间通信的函数在卷1中也没有。我们使用两个库函数不免有些不方便,现在将卷2中的在卷1中没有的函数都合并到卷1的库函数中。1.创建unix网络编程卷2——进程间通信configure.h配置文件 cd 目录 ./co... 阅读全文
posted @ 2014-08-03 17:48 hancmhi 阅读(197) 评论(0) 推荐(0) 编辑

进程间通信(三)——Posix共享内存区

摘要: 1.概述共享内存区是IPC中最快的,当内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。但是这需要某种形式的同步,最常用的是信号量。不再涉及内核:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一值管理该内存区。管道,F... 阅读全文
posted @ 2014-08-01 20:52 hancmhi 阅读(685) 评论(1) 推荐(0) 编辑

进程间同步(1)——条件变量和互斥量

摘要: 1. 概述条件变量和互斥量是最基本的同步形式,总是用于同步同一个进程的各个线程间同步。当把条件变量或互斥量放在共享内存区时,可用于进程间同步。同样的情况还有读写锁,它们都是随进程的持续性。2.互斥锁互斥锁指代相互排斥,用于保护临界区。多个线程和多个进程分享的共享数据。静态初始化:static pth... 阅读全文
posted @ 2014-08-01 20:52 hancmhi 阅读(931) 评论(0) 推荐(0) 编辑

进程间通信(二)——Posix消息队列

摘要: 1.概述消息队列可认为是消息链表。有足够写权限的线程可以往队列中放置消息,有足够读权限的进程可以从队列中取走消息。每个消息是一个记录,由发送着赋予一个优先级。在向队列中写入消息时,不需要某个进程在该队列上等待消息到达。这与管道不同,管道必须现有读再有写。消息队列具有随内核的持续性,与管道不同。进程结... 阅读全文
posted @ 2014-08-01 20:51 hancmhi 阅读(507) 评论(0) 推荐(0) 编辑