当前位置:  技术问答>linux和unix

信号捕捉,C++

    来源: 互联网  发布时间:2015-12-29

    本文导语:  linux真是C语言的天下,我发现连C++都用起来不太爽! 现在有个问题,郁闷几天,不知在CSDN上能解决不? 关于信息处理函数, 它必须是全局且静态函数,能不是类的成员函数呢? C代码如下: static struct sigaction s...

linux真是C语言的天下,我发现连C++都用起来不太爽!
现在有个问题,郁闷几天,不知在CSDN上能解决不?
关于信息处理函数,
它必须是全局且静态函数,能不是类的成员函数呢?
C代码如下:
static struct sigaction sigaction_io;   
static void signal_handler_revdata(int status)
{
//在此处做我的事
}

static int setsig()
{
sigaction_io.sa_handler = signal_handler_revdata;
sigaction (SIGUSR1, &sigaction_io, NULL);
return 0;
}

而我用C++,我现在希望signal_handler_revdata必須是类的成员函数,能实现吗?

在VC中,如果有类似的情况,只要声明为static就行了,但linux就是不行,硬不能是类的成员!烦燥,不知怎么解决这个问题?
大家帮我想想办法,急啊!

|
可以这样尝试一下:
声明一个该类的全局实例,在信号处理过程中调用此实例的相关过程。
另外也可一这样,在类中设置一些输出相关变量的方法,和一些设置相关变量的方法。在处理过程中调用他们以获得相关变量,或者设置他们。

|
awjx(啦啦啦) ( ) 信誉:100    Blog  

兄弟,经你一提醒,我现在解决了,不知你是这样想的不?
在外面声明全局:FrmMain *pMain;
然后在类的构造函数中 pMain = this;
然后就可以随心所欲地使用pMain了。
虽然实现我的功能了,但严重破坏了面向对象的宗旨!

-------------------------------------------
这个是常见的传递方式,但如果有多个实例的时候,就充掉了,要用数组来解决了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 进入信号处理函数,是不是会自动把进入信号加入信号屏蔽字?还有sigpending
  • 学习linux的新手问:linux进程信号掩码以及信号阻塞与信号未决怎么理解?
  • 关于信号量与UNIX信号的疑问
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 当信号量(灯)遇上信号,help!
  • 请问什么时候发出SIGKILL信号、什么时候发出SIGTERM信号?
  • 安全信号和不安全信号的实现机制有什么不同么?
  • 如何确定信号的来源?即如何知道接收到的信号来自于哪一个进程号?
  • 自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别?
  • 关于消息队列信号量信号共享内存等核心编程的问题(求知若渴!!!.....)
  • 可靠信号和不可靠信号的问题
  • semaphore.h sem.c Posix 信号量 System v 信号量
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号
  • 信号可靠还是不可靠,取决与信号本身还是signal()/sigaction()的区别?
  • 信号处理函数里面用CRT函数可能导致"信号触发-处理"死循环吗?
  • 终端被关闭后,bash收到哪些信号,这些信号是怎么来的?
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • linux 中信号量的使用 当信号初始化的时候设置的值大于1将是如何?
  • 大侠们求指导,电信骨干网光纤信号分流成多个千兆网信号
  • jquery iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3