进程和信号

1.进程标识符(PID):通常是一个取值从2~32768的正整数

  数字1一般是为特殊进程Init保留的,Init进程负责管理其他进程

2.进程有自己的栈空间,用于保存函数中的局部变量和控制函数的调用和返回

   进程有自己的环境空间,包含专门为这个进程建立的环境变量

   进程还必须维护自己的程序计数器,用来记录它执行到的位置

3.启动新进程的方法

  a.库函数system方式: system("ps ax")

  b.替换进程映像的exec系列函数: exec函数把当前进程替换为另一个新进程,新进程由path和file参数指定。 execl("/bin/ps","ps","ax",0)

    execl() / execlp() / execle()

    execv() / execvp() / execve() 

  c.复制进程映像的fork()函数:fork函数复制当前进程,在进程表中创建一个新的表项,新表中的许多属性与当前进程是相同的。新进程和原进程几乎一模一样,执行的代码也完全一样,担心进程有自己的数据空间、环境和文件描述符。

    pid_t newpid

    newpid = fork();

4.等待一个进程wait

  int sta_val;

  pid_t child_pid;

  child_pid = wait(&sta_val);    //wait返回子进程Pid, sta_val显示子进程执行的状态信息

 

5.信号

  信号是UNIX和Linux系统响应某些条件而产生的一个事件

  生成\捕获\响应\忽略

  信号名称在signal.h中定义的,都以SIG开头。

6.核心转储文件core

  如果进程接收到某些信号,但事先没有安排捕获他,进程将会立刻停止。通常,系统将生成核心转储文件core,并将其放在当前目录下。该文件是进程在内存中的映像,他对程序的调试很有用处。

7.常用信号名称

SIGABRT        进程异常终止    6
SIGALRM        超时告警    
SIGFPE        浮点运算异常
SIGHUP        连接挂断
SIGILL        非法指令
SIGINT        终端中断   2
SIGKILL        停止进程(此信号不能被忽略或捕获)
SIGPIPE        向没有读的管道写入数据
SIGSEGV        无效内存段访问
SIGQOUT        终端退出    3
SIGTERM        终止
SIGUSR1        用户定义信号1
SIGUSR2        用户定义信号2
SIGCHLD        子进程已经停止或退出
SIGCONT        如果被停止则继续执行
SIGSTOP        停止执行
SIGTSTP        终端停止信号
SIGTOUT        后台进程请求进行写操作
SIGTTIN        后台进程请求进行读操作

8.signal函数简介

signal函数作用是 给某个信号signum注册一个信号处理函数handler
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
signal函数
    作用1:站在应用程序的角度,注册一个信号处理函数
    作用2:忽略信号,设置信号默认处理 信号的安装和回复
参数
--signal是一个带signum和handler两个参数的函数,准备捕捉或屏蔽的信号由参数signum给出,接收到指定信号时将要调用的函数有handler给出
--handler这个函数必须有一个int类型的参数(即接收到的信号代码),它本身的类型是void
--handler也可以是下面两个特殊值:① SIG_IGN 屏蔽该信号        ② SIG_DFL 恢复默认行为

 

转载于:https://www.cnblogs.com/qxgloyal/p/8710643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值