objective-c - 在应用程序退出之前执行函数

标签 objective-c cocoa

我想在处理停止/终止信号之前调用一个函数。

有没有简单的方法可以做到这一点?

最佳答案

您可以通过设置信号处理程序来处理 SIGTERMSIGINT 信号(请参阅 signal(3) ),但是您不能处理 SIGKILL,这就是为什么它应该是针对程序使用的最后手段。

如果您总是想在进程退出之前执行某些操作,请参阅 atexit(3) .

$ cat sig.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

static void closedown() {
    printf("running closedown\n");
}

static void sighandler(int signal) {
    exit(1);
}

int main(int argc, const char **argv) {
    signal(SIGTERM, sighandler);
    signal(SIGINT, sighandler);
    atexit(closedown);
    while (1) {
        sleep(1);
        printf("tick\n");
    }
    return 0;
}

$ clang -o sig sig.c
$ ./sig
tick
tick
^Crunning closedown

关于objective-c - 在应用程序退出之前执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19700528/

相关文章:

html - 在 Objective C 中将 RTF 文件转换为 HTML

ios - 绘图针未指向 MKMapView 上的确切位置

objective-c - 由于 addObject 不访问 setter,如何检查分配?

cocoa - 动态覆盖首选字符串本地化以进行测试

iphone - Objective-C 中向数组添加数据的问题

ios - NSDecimalNumber 返回错误的 uint64_t 值

objective-c - 折叠动画与滑动动画不对齐

objective-c - 从单元测试访问模拟类变量的静态变量

ios - Facebook Messenger 撰写预定义消息

objective-c - NSComboBox 文本不会显示,除非编辑