[ KILL ]功能描述:
用于向任何进程组或进程发送信号。

头文件用法:

1  #include  < sys / types.h >

3  #include  < signal.h >

5  int  kill(pid_t pid,  int  sig);

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函数用法相关推荐

  1. LINUX下poll函数用法

    LINUX下poll函数用法 文章目录 LINUX下poll函数用法 一.函数介绍 二.使用 1. 一.函数介绍 int poll(struct pollfd *fds, nfds_t nfds, i ...

  2. linux下open函数用法,linux下open函数和creat函数

    open 函数用于打开和创建文件.以下是 open 函数的简单描述 #include int open(const char *path, int access,int mode) 返回值:成功则返回 ...

  3. linux进程snprintf函数功能,linux 之 snprintf函数用法

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...

  4. linux下防火墙iptables用法规则详解

    linux下防火墙iptables用法规则详解 分享者: du52.com 邮件: wangaibo168@163.com 主页: http://www.du52.com linux下防火墙iptab ...

  5. Linux下的awk用法详解

    Linux下的awk用法详解 一.awk介绍 二.awk的语法 三.awk常见用法 四.awk其他用法 五.awk语言特性 一.awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工 ...

  6. linux下system函数的深入理解

    这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...

  7. linux下chkConfig的用法,mysqld开机自启动

    linux下chkConfig的用法,mysqld开机自启动 使用语法: chkconfig[--add][--del][--list][系统服务]或chkconfig[--level<等级代号 ...

  8. linux下清理信号量,Linux下kill的信号量列表

    Linux下kill的信号量列表 kill -s SIGSTOP PID i.e. kill -s SIGSTOP PID (暂停进程) kill -s SIGCONT PID (恢复运行进程) #d ...

  9. linux下svn的用法(转)

    linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...

最新文章

  1. 如何利用装饰者模式在不改变原有对象的基础上扩展功能
  2. 计算机组成原理主存储器知识点,【考研】2020考研:计算机组成原理知识点主存储器与CPU的连接...
  3. 【机器学习基础】常见二分类损失函数、距离度量的Python实现
  4. matlab中boxplot函数的参数设置_matlab中boxplot字体大小设置
  5. read web.config
  6. 老年痴呆与LDL-C 低密度脂蛋白
  7. python完成‘21点游戏’
  8. python全排列速度最快_python 写的两种打印全排列的方法速度对比
  9. SpringMVC 文件上传及下载
  10. 内部类、抽象类、接口基本知识详解
  11. opencv 作图函数
  12. 零基础带你学习MySQL—not null 非空(二十四)
  13. python购物车进阶(函数)
  14. mongodb添加登陆验证
  15. 淘宝店铺装修如何实现全屏轮播
  16. 兰大《银行会计学》命题作业离线作业
  17. C++:实现量化daycounters 日计数器测试实例
  18. 读《楚汉传奇》中历史故事悟项目管理
  19. python geometry用法_Arcgis python geometry
  20. 射影几何----交比是最基本的射影不变量

热门文章

  1. Java多线程——不变性与安全发布
  2. Shell --- 批量修改文件后缀脚本
  3. django第二个项目--使用模板做一个站点访问计数器
  4. mysql主从安装配置_如何安装和配置mysql主从同步
  5. mysql .pdb是什么文件_计算广告算法到底要做什么?
  6. 0基础能学mysql数据库吗_mysql学习入门:零基础如何使用mysql创建数据库表?
  7. docker 数据库 mysql_在Docker中体验数据库之MySql
  8. shadows a parameter
  9. LeetCode 513. 找树左下角的值 思考分析
  10. Java Hashtable get()方法与示例