linux C语言编程 唤醒指定PID的进程

Python012

linux C语言编程 唤醒指定PID的进程,第1张

给你一个完整的测试代码:

--------------------------

#include <stdio.h>

#include <sys/types.h>

#include <unistd.h>

#include <signal.h>

#include <stdlib.h>

void handler(int signo)

{

printf("recv the signal from parent process\n")

}

int main()

{

pid_t pid

pid = fork()

switch(pid)

{

case -1:

perror("fork failed")

exit(1)

case 0:

printf("in the child\n")

signal(SIGCONT, handler)

pause()

printf("child weakup\n")

break

default:

printf("in the parent\n")

sleep(5)

kill(pid, SIGCONT)

sleep(5)

printf("parent weakup\n")

break

}

printf("bye..\n")

exit(0)

}

--------------------------------------------------

运行及输出:

beyes@linux-beyes:~/C>./weakup.exe

in the child

in the parent

recv the signal from parent process

child weakup

bye..

parent weakup

bye..

....................................

一、什么是PID:

PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法,该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。 ---百度百科

二、PID是否难学:

在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是原始的,简单的也不是落后的,简单到了美的程度。 ---【1】

三、PID算法的C语言源码:

PID 控制算法可以分为位置式 PID 和增量式 PID 控制算法

详细见参考【1】【2】

参考:

【1】PID算法

【2】简易PID算法的快速扫盲(超详细+过程推导+C语言程序)