zoukankan      html  css  js  c++  java
  • 结束进程

    一个进程由于以下5个原因中的一个终止。
      –main函数调用了return;
      –调用了exit函数;
      –调用了_exit函数;
      –调用了abort函数;
      –被一个信号终止。
    前三个原因都是正常终止,后面两个是非正常终止。
    无论进程为何终止,最后都执行相同的内核代码,关闭打开的文件,释放内存资源,和其他清理工作。
     
     
     
    exit函数

    int exit(int status);

      –exit导致程序正常终止,并且返回给父进程的状态(status)。
    无论进程为何终止,最后都执行相同的内核代码,关闭打开的文件,释放内存资源,和其他清理工作。
     
     
    abort函数
      –void abort(void);
      –abort导致程序异常终止;
      –abort还可以让程序产生core,这是大多数调试器用于分析程序崩溃时的文件。
    虽然任何打开的文件都被关闭了,但abort仍然是个粗暴的调用,应该作为最后的手段来使用。
    比如当你碰到一个很严重内存不足这样的错误,无法用程序的方式处理时再使用。
     
     
    kill函数

    #include <signal.h>

    #include <sys/types.h>

    int kill(pid_t pid, int sig);

    exit,abort用来杀死进程自己。
    kill函数用来杀死另一个进程。
    参数pid指定一个要杀死的进程,而sig是要发送的信号,本章内容是杀死一个进程,所以只需要关注SIGKILL一个信号。
     
     
    kill函数例子
    int main(int arg, char *args[])
    {
        if (arg > 1)
        {
            int pid = atoi(args[1]);
            kill(pid, SIGKILL);
        }
        else
        {
            printf("pid = %u
    ",getpid());
            sleep(60);
        }
        return 0;
    }
     
     
     
  • 相关阅读:
    【节流】在vue的搜寻功能中使用节流
    【本地存储】将数据存储到本地 (sessionStorage、vuex)
    【react】 react---项目的-----------简单路由配置
    观察者模式
    vue-awesome-swiper 的安装和使用
    BetterScroll、移动端、滚动事件,如何使用
    永乐接口
    Linux命令
    对称加密和非对称加密
    小程序
  • 原文地址:https://www.cnblogs.com/shichuan/p/4496179.html
Copyright © 2011-2022 走看看