zoukankan      html  css  js  c++  java
  • 进程的退出

    #include <stdio.h>
    #include <stdlib.h>
    
    static void atexitFunc1(void) {
        printf("atexit function 1 called.
    ");
    }
    
    static void atexitFunc2(void) {
        printf("atexit function 2 called.
    ");
    }
    
    static void onexitFunc(int exitStatus, void *arg) {
        printf("on_exit function called: status=%d, arg=%ld
    ", exitStatus, (long)arg);
    }
    
    int main() {
        if(on_exit(onexitFunc, (void*)10)!=0) {
            printf("on_exit 1");
            return -1;
        }
        if(atexit(atexitFunc1) != 0) {
            printf("atexit 1");
            return -1;
        }
        if(atexit(atexitFunc2) != 0) {
            printf("atexit 2");
            return -1;
        }
        if(on_exit(onexitFunc, (void*)20) != 0) {
            printf("on_exit 2");
            return -1;
        }
    
        return 0;
    }

    在进程终止之前,C库会按顺序执行以下关闭进程的步骤。

    1)调用任何由atexit()或on_exit()注册的函数,和在系统中注册时顺序相反。

    2)清空所有已打开的标准I/O流。

    3)删除由tmpfile()函数创建的所有临时文件。

  • 相关阅读:
    Java API学习
    Java接口类学习笔记
    TCP/IP协议族
    Web服务器
    Redis笔记
    Python知识总汇
    GIL锁
    day8
    day7
    day6
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/15009275.html
Copyright © 2011-2022 走看看