在Swift命令行应用程序中捕获信号

在Swift命令行应用程序中捕获信号,第1张

概述如何正确捕获 Swift中的SIGINT和SIGTERM等不同信号?例如,当人们通过按Control-C来停止我的脚本时,我想在终止它之前进行一些清理. Dispatch Sources 可用于监控UNIX信号. 这是一个简单的例子,一个Swift 3的C代码翻译 “并发编程指南”的“Monitoring Signals”部分. import Dispatch // or Foundation 如何正确捕获 Swift中的SIGINT和SIGTERM等不同信号?例如,当人们通过按Control-C来停止我的脚本时,我想在终止它之前进行一些清理.解决方法 Dispatch Sources
可用于监控UNIX信号.

这是一个简单的例子,一个Swift 3的C代码翻译
“并发编程指南”的“Monitoring Signals”部分.

import dispatch // or Foundationsignal(SIGINT,SIG_IGN) // // Make sure the signal does not terminate the application.let sigintSrc = dispatchSource.makeSignalSource(signal: SIGINT,queue: .main)sigintSrc.setEventHandler {    print("Got SIGINT")    // ...    exit(0)}sigintSrc.resume()

注意,这需要有效的GCD事件循环,例如,同

dispatchMain()

在命令行程序中.

总结

以上是内存溢出为你收集整理的在Swift命令行应用程序中捕获信号全部内容,希望文章能够帮你解决在Swift命令行应用程序中捕获信号所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存