易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下的主动对象类的实现

#pragma once
#include <pthread.h>
class ThreadWrapper
{
public:
    virtual ~ThreadWrapper();
    static void EnterFunc(void *p);
    int Open();
    int Close();
    bool TestCancel();
    void Wait();
    virtual void Svc();
protected:
    ThreadWrapper();
private:
    bool m_stillOpen;
    int m_threadNum;
    pthread_t m_handle;
};
*************************************************
#include "ThreadWrapper.h"
ThreadWrapper::ThreadWrapper()
: m_stillOpen(false)
{}
ThreadWrapper::~ThreadWrapper()
{
    if(m_stillOpen)
    {
        Close();
        Wait();
    }
}
/*
Functional: The enter function of the thread.
*/
void ThreadWrapper::EnterFunc (void *p)
{
    ThreadWrapper* bp = static_cast <ThreadWrapper*> (p);
     bp->Svc();
}
/*
Functional: Create the thread.
*/
int ThreadWrapper::Open ()
{
    m_threadNum = threadNum;
    int ret = pthread_create(&m_handle, NULL, EnterFunc, this);
    if (ret != 0)
   {
       return -1;
    }
    m_stillOpen = true;
    return 0;
}
int ThreadWrapper::Close()
{
    pthread_cancel(m_handle);
    m_stillOpen = false;
    return 1;
}
void ThreadWrapper::TestCancel()
{
     pthread_testcancel();
}
void ThreadWrapper::Wait()
{
    pthread_join(m_handle, NULL);
    m_stillOpen = false;
}
void ThreadWrapper::Svc()
{}
此主动对象的用法如下:
1:先定义主动对象类,派生自ThreadWrapper即可,然后实现Svc()虚方法
cla


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux页框级内存管理处理细节

弄清楚伙伴系统算法的原理以后,我们就可以开开心心地处理页框了。
我们可以通过6个稍有差别的函数和宏请求页框。一般情况下,他们都返回第一个所分配页的线性地址,或者分配失败则返回NULL。
alloc_pages(gfp_mask, order):用这个函数请求2order 个连续的页框。他返回第一个所分配页框描述符的地址,或者如果失败,则返 ......

LINUX 自启动管理

前言
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 
阅读之前建议先看一下附图。 
本文中假设inittab中设置的init tree为: 
/etc/rc.d/rc0.d 
/etc/rc.d/rc1.d 
/etc/rc.d/rc2.d 
/etc/rc.d/rc3.d 
/etc/rc.d/rc4.d 
/etc/ ......

linux 重定向


1. 标准输入的控制
语法:命令< 文件将文件做为命令的输入。
例如:
mail -s “mail test” das@163.com < file1 将文件file1 当做信件的内容,主
题名称为mail test,送给收信人。
2. 标准输出的控制
语法:命令> 文件将命令的执行结果送至指定的文件中。
例如:
ls -l > list 将执行&ldqu ......

Linux下的压缩文件剖析

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号