Linux环境进程间通信: 共享内存

摘要: Linux环境进程间通信: 共享内存第一部分共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。——————————————-采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共 阅读全文
posted @ 2013-12-04 11:57 钢少 阅读(344) 评论(0) 推荐(0)

linux c 获取当前时间 毫秒级的 unix网络编程

摘要: #include #inlcude char *gf_time(void) /* get the time */{ struct timeval tv; static char str[30]; char *ptr; if (gettimeofday(&tv, NULL) < 0) err_sys("gettimeofday error"); ptr = ctime(&tv.tv_sec); strcpy(str, &ptr[11]); /* Fri Sep 13 00:00:00 1986\n\0 */ /* 0123456789012345 阅读全文
posted @ 2013-12-02 15:14 钢少 阅读(660) 评论(0) 推荐(0)

用条件变量实现事件等待器的正确与错误做法--转自陈硕的Blog

摘要: 用条件变量实现事件等待器的正确与错误做法TL;DR 如果你能一眼看出https://gist.github.com/chenshuo/6430925中的那 8 个 Waiter classes 哪些是对的哪些是错的,本文就不必看了。前几天,我发了一条微博http://weibo.com/1701018393/A7FrW7ZVd,质疑某本书对 Pthreads 条件变量的封装是错的,因为它没有把 mutex 的 lock()/unlock() 函数暴露出来,导致无法实用。后来大家讨论的分歧是这个 cond class 是不是通用的条件变量封装,还是只是一个特殊的“事件等待器”。作为事件等待器,其 阅读全文
posted @ 2013-12-02 12:05 钢少 阅读(255) 评论(0) 推荐(0)

VS2008 工具栏CMFCToolBar的使用总结(转)

摘要: (一)自定义工具栏自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标;二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似。1、 自绘工具栏1)添加Toolbar 资源,并设置工具条ID,如IDR_TOOLBAR1;编辑工具条,添加相应的项,设置项的ID,绘制各自图标的。2)在MainFrm.h中添加Toolbar变量:public:CMFCToolBar m_toolbar1;3)在MainFrm.cpp中的OnCreate中添加代码:if((!m_toolbar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |WS_VISIBL 阅读全文
posted @ 2013-11-14 15:46 钢少 阅读(1031) 评论(0) 推荐(0)

VC MFC工具栏(CToolBar)控件(转)

摘要: 工具栏工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建,如CButton按钮类,现举一个用代码创建按钮控件并显示在窗口里的例子。CButton类的Create成员函数可以创建一个按钮控件,这个函数的格式如下:BOOL CButton::Create(LPCTSTR lpszCaption,//按钮显示的文本DWORD dwStyle,//按钮样式const RECT& rect,//按钮控件显示的区域(大小)相对于父窗口CWnd* pParent 阅读全文
posted @ 2013-11-14 15:45 钢少 阅读(331) 评论(0) 推荐(0)

CToolBarCtrl工具栏设置总结(转)

摘要: (一)工具条控制的主要功能所谓工具条就是具有位图和分隔符组成的一组命令按钮,位图按钮部分可以是下推按钮、检查盒按钮、无线按 钮等。工具条对象类派生于主窗口架框类CframeWnd或CMDIFrameWnd,其类控制CToolBar::GetToolBarCtrl是 MFC类库中封装的一个成员函数,允许使用类库中提供的一般控制和附加功能,CtoolBar类控制成员控制提供了Windows一般控制的所有功能,然 而,通过调用 GetToolBarCtrl成员函数取得引用后,可以使工具条具有更强的特性。工具条的创建具有四个步聚:首先是建立工具条资源;然后建立工具条对象结构;其次通过调用建立函数建立工 阅读全文
posted @ 2013-11-14 15:44 钢少 阅读(1346) 评论(0) 推荐(0)

自定义工具条过程及范例

摘要: 支持真彩色图标,可添加文字。动机:传统的VC工具栏只支持16色的图标,且不能添加文字。要点:CToolBarCtrl类的使用。先引用MSDN上的话(翻译水平比较菜,见谅!)使用CToolBarCtrl类,一般遵从以下几个步骤:1.构造一个CToolBarCtrl对象。2.调用Create函数创建Windows工具条通用控件并与CToolBarCtrl对象相关联。3.确定工具条上的按钮如何显示:(1)使用位图图像。调用AddBitmap向工具条添加按钮位图(2)使用图像列表里面显示的图像。调用SetImageList函数、SetHotImageList函数、SetDisabledImageLis 阅读全文
posted @ 2013-11-14 15:39 钢少 阅读(311) 评论(0) 推荐(0)

CToolBarCtrl基本内容控件

摘要: 基本内容CToolBarCtrlCObject└CCmdTarget└CWnd└CToolBarCtrl CToolBarCtrl类提供了Windows工具条通用控件的性能。这个控件(也就是CToolBarCtrl类)只对运行在Windows 95和Windows NT 3.51或更高版本下的程序来说才是可用的。 一个Windows工具条通用控件是一个矩形子窗口,它包含一个或多个按钮。这些按钮可以显示一个位图图像,一个字符串,或两者都有。当用户选择一个按钮时,它向该工具条的属主窗口发送一条命令消息。通常,工具条中的按钮对应于应用程序的菜单中的项;这些按钮为用户访问一个应用程序的命令提供了更.. 阅读全文
posted @ 2013-11-14 15:35 钢少 阅读(803) 评论(0) 推荐(0)