Linux下Kill函数用法
[ KILL ]功能描述:
用于向任何进程组或进程发送信号。
头文件用法:
1 #include < sys / types.h >
2
3 #include < signal.h >
4
5 int kill(pid_t pid, int sig);
6
7
参数:
pid:可能选择有以下四种
1. pid大于零时,pid是信号欲送往的进程的标识。
2. pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。
3. pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。
4. pid小于-1时,信号将送往以-pid为组标识的进程。
sig:准备发送的信号代码,假如其值为零则没有任何信号送出,但是系统会执行错误检查,通常会利用sig值为零来检验某个进程是否仍在执行。
返回值说明: 成功执行时,返回0。失败返回-1,errno被设为以下的某个值 EINVAL:指定的信号码无效(参数 sig 不合法) EPERM;权限不够无法传送信号给指定进程 ESRCH:参数 pid 所指定的进程或进程组不存在
#include < sys / wait.h >
#include < sys / types.h >
#include < stdio.h >
#include < stdlib.h >
#include < signal.h >int main( void )
{pid_t childpid;int status;int retval;childpid = fork();if ( - 1 == childpid ){perror( " fork() " );exit( EXIT_FAILURE );}else if ( 0 == childpid ){puts( " In child process " );sleep( 100 ); // 让子进程睡眠,看看父进程的行为exit(EXIT_SUCCESS);}else{if ( 0 == (waitpid( childpid, & status, WNOHANG ))){retval = kill( childpid,SIGKILL );if ( retval ){puts( " kill failed. " );perror( " kill " );waitpid( childpid, & status, 0 );}else{printf( " %d killed\n " , childpid );}}}exit(EXIT_SUCCESS);
}
[root@localhost src]# gcc killer.c
[root@localhost src]# . / a. out
In child process
4545 killed
在确信fork调用成功后,子进程睡眠100秒,然后退出。
同时父进程在子进程上调用waitpid函数,但使用了WNOHANG选项,
所以调用waitpid后立即返回。父进程接着杀死子进程,如果kill执行失败,
返回-1,否这返回0。如果kill执行失败,父进程第二次调用waitpid,
保证他在子进程退出后再停止执行。否则父进程显示一条成功消息后退出。
原文地址:
https://blog.csdn.net/diegui9005/article/details/101895441?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
Linux下Kill函数用法相关推荐
- LINUX下poll函数用法
LINUX下poll函数用法 文章目录 LINUX下poll函数用法 一.函数介绍 二.使用 1. 一.函数介绍 int poll(struct pollfd *fds, nfds_t nfds, i ...
- linux下open函数用法,linux下open函数和creat函数
open 函数用于打开和创建文件.以下是 open 函数的简单描述 #include int open(const char *path, int access,int mode) 返回值:成功则返回 ...
- linux进程snprintf函数功能,linux 之 snprintf函数用法
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...
- linux下防火墙iptables用法规则详解
linux下防火墙iptables用法规则详解 分享者: du52.com 邮件: wangaibo168@163.com 主页: http://www.du52.com linux下防火墙iptab ...
- Linux下的awk用法详解
Linux下的awk用法详解 一.awk介绍 二.awk的语法 三.awk常见用法 四.awk其他用法 五.awk语言特性 一.awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工 ...
- linux下system函数的深入理解
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...
- linux下chkConfig的用法,mysqld开机自启动
linux下chkConfig的用法,mysqld开机自启动 使用语法: chkconfig[--add][--del][--list][系统服务]或chkconfig[--level<等级代号 ...
- linux下清理信号量,Linux下kill的信号量列表
Linux下kill的信号量列表 kill -s SIGSTOP PID i.e. kill -s SIGSTOP PID (暂停进程) kill -s SIGCONT PID (恢复运行进程) #d ...
- linux下svn的用法(转)
linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...
最新文章
- 如何利用装饰者模式在不改变原有对象的基础上扩展功能
- 计算机组成原理主存储器知识点,【考研】2020考研:计算机组成原理知识点主存储器与CPU的连接...
- 【机器学习基础】常见二分类损失函数、距离度量的Python实现
- matlab中boxplot函数的参数设置_matlab中boxplot字体大小设置
- read web.config
- 老年痴呆与LDL-C 低密度脂蛋白
- python完成‘21点游戏’
- python全排列速度最快_python 写的两种打印全排列的方法速度对比
- SpringMVC 文件上传及下载
- 内部类、抽象类、接口基本知识详解
- opencv 作图函数
- 零基础带你学习MySQL—not null 非空(二十四)
- python购物车进阶(函数)
- mongodb添加登陆验证
- 淘宝店铺装修如何实现全屏轮播
- 兰大《银行会计学》命题作业离线作业
- C++:实现量化daycounters 日计数器测试实例
- 读《楚汉传奇》中历史故事悟项目管理
- python geometry用法_Arcgis python geometry
- 射影几何----交比是最基本的射影不变量
热门文章
- Java多线程——不变性与安全发布
- Shell --- 批量修改文件后缀脚本
- django第二个项目--使用模板做一个站点访问计数器
- mysql主从安装配置_如何安装和配置mysql主从同步
- mysql .pdb是什么文件_计算广告算法到底要做什么?
- 0基础能学mysql数据库吗_mysql学习入门:零基础如何使用mysql创建数据库表?
- docker 数据库 mysql_在Docker中体验数据库之MySql
- shadows a parameter
- LeetCode 513. 找树左下角的值 思考分析
- Java Hashtable get()方法与示例