C++ Socket(四)
来源:互联网 发布:男士洗面奶推荐知乎 编辑:程序博客网 时间:2024/05/02 00:01
信号
信号又称为软中断。在Linux系统中,信号是进程间通信的一种机制,也是系统向用户进程发出通知的重要方式!
系统中已经预定义了一些系统信号,这些信号只可以由系统内核或者具有足够权限的用户进程产生。
非系统信号可以由用户进程产生。
对于系统信号,系统会优先调用用户进程中注册(即截取信号)的处理函数,此时默认处理函数(每个进程在创建之初就已经预定义好了默认处理函数来处理系统信号)将不会生效。如果没有注册处理函数(即没有截取这个信号)系统会调用默认处理函数。
例如如果注册监听了SIGSTOP和SIGKILL,并且在处理函数里面没有定义进程的退出机制,这个进程将永远不会退出。
信号注册(截取)函数为
#include<signal.h>
typedef void (*__sighandler_t) (int);
__sighandler_t signal (int __sig, __sighandler_t __handler);
信号产生函数为
#include<signal.h>
#include<sys/type.h>
int kill (__pid_t __pid, int __sig);
int raise (int __sig) ;
kill函数名为杀死,但是实际上跟杀死没半毛钱关系。当pid不为0时,向pid进程发送信号sig;当pid为0时,向所有进程发送信号sig。
raise:向自己发送信号sig
Socket编程中两个重要的系统信号
SIGPIPE
#include<signum.h>
#define SIGPIPE13
写套接字时,对方已关闭连接,将会得到一个SIGPIPE
SIGINT
进程被杀死时(例如Ctrl+C或者kill命令)当前进程将会得到这个信号量。
在收到这个通知之后,一般地我们需要在这里释放全局指针。
阅读全文
0 0
- socket编程(四)
- socket编程(四)
- C++ Socket(四)
- Java Socket编程(四)Socket进阶
- Java Socket编程(四)
- Java Socket编程(四)
- socket编程原理(四)
- Java socket编程(四)
- Java Socket 通信 (四)
- [C#]手把手教你打造Socket的TCP通讯连接(四)
- Java Socket应用(四)——Socket简介
- python Socket编程(四)----FTP
- Android中的socket通信(四)
- Linux下Socket编程学习(四)
- python socket(四)网络多路复用
- C++ SOCKET通信模型(四)IOCP
- C/C++ socket编程教程之四:使用socket()函数创建套接字
- C/C++ socket编程教程之四:使用socket()函数创建套接字
- Movie Studio项目属性设置(一)
- myeclipse 导入文件 中文乱码
- windows 新建文件夹 重命名文件
- [笔记]朴素贝叶斯·神经网络·SVM
- 2104 删除物品(树状数组)
- C++ Socket(四)
- Overlay permissions needs to be granted in order for react native apps to run in dev mode
- VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)
- ubuntu系统传送文件和文件夹
- web安全学习笔记
- Ionic Framework: A definitive 10,000 word guide
- 六、STL的数值计算---复数运算
- 王学岗自动刷新按钮————SwipeRefreshLayout
- PowerDesigner报“打印错误”的解决方法