UNIX C关于子进程的两个问题?

binb 2000-07-04 12:34:00
1。 如何让进程只捕获信号,而不要动作?
即signal(SIGUSR1, xx)中xx是什么?(SCO 5.0)
2。 signal(SIGUSR2, sig)的返回值是函数sig的返回
值吗?若不是,如何取得sig的返回值?
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
binb 2000-07-12
  • 打赏
  • 举报
回复
再请问一句:我怎么知道signal已取得信号?
vagabond 2000-07-12
  • 打赏
  • 举报
回复
1。 如何让进程只捕获信号,而不要动作?
即signal(SIGUSR1, xx)中xx是什么?(SCO 5.0)
xx表示的是一个函数指针。
可以使用函数:
signal(SIGUSR1,SIG_IGN)
忽略对SIGUSR1的信号操作。

2。 signal(SIGUSR2, sig)的返回值是函数sig的返回值吗?若不是,如何取得sig的返回值?

不是,是原来绑定在SIGUSR2上的函数。



DreamChao 2000-07-11
  • 打赏
  • 举报
回复
那你在空函数里加入一条打印信息即可。
当信号被捕捉到就回调用那个函数,然后打印信息。
binb 2000-07-07
  • 打赏
  • 举报
回复
?
fjp 2000-07-04
  • 打赏
  • 举报
回复
1.xx是与该信号关联的动作,它是一个函数指针,当进程捕获到该信号后,就执行它所指的函数。定义空关联函数即可既捕获信号又不动作。例如:
void xx(int signo)
{
//do nothing!
}
xx的原型为void (*xx)(int), 然不返回值。
2.一般每个信号都与一个函数关联,调用signal,它一是置新的关连函数,二是返回前一关联函数指针。
signal的原型为void (*signal (int sig, void (*func) (int))) (int);
关于返回值的问题已很明显了。
3.关于信号这个主题可找些资料看看以加深理解。
binb 2000-07-04
  • 打赏
  • 举报
回复
我是指捕捉到信号,主程序就转移
否则继续
binb 2000-07-04
  • 打赏
  • 举报
回复
再请问如何知道signal已捕捉到信号?
一、C语言自我YY1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。4)、C语言是面向过程语言,C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言。C语言是目前世界上流行、使用最广泛的高级程序设计语言6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧