适用于Mac OS X的命令行应用程序

时间:2013-04-12 12:58:06

标签: objective-c delegates terminal

我有一个现有的“命令行工具”项目。 此工具永远运行,直到用户关闭终端。 当应用程序终止时,没有任何方法可以调用。如何在此项目中设置applicationWillTerminate,如delegate方法。 当用户在终端窗口点击关闭时,需要接收通知。

当用户通过按CTRL + C退出命令时,是否有任何方法可以获得通知?

1 个答案:

答案 0 :(得分:4)

你应该能够捕获来自Unix的信号。

signal(SIGABRT, SignalHandler);
signal(SIGILL, SignalHandler);
signal(SIGSEGV, SignalHandler);
signal(SIGFPE, SignalHandler);
signal(SIGBUS, SignalHandler);
signal(SIGPIPE, SignalHandler);

然后定义一个信号处理程序:void SignalHandler(int signum) { ... }

这是一个example

你也可以阅读signal handling,它应该有所帮助。 This即使适用于iOS,也可能有用。