2017-03-07 61 views
0

我需要知道用户何时停止命令行程序,以便以快速编写的命令行程序(在终端上运行)释放一些活动的蓝牙连接。Swift:命令行工具退出回调

说用户调用程序,然后按ctrl + Z退出。 我怎么知道?

回答

1

您可以使用Swift安装信号处理程序。例如:

import Foundation 

let startTime = Date() 
var signalReceived: sig_atomic_t = 0 

signal(SIGINT) { signal in signalReceived = 1 } 

var i = 0 
while true { 
    if signalReceived == 1 { break } 
    usleep(500_000) 
    if signalReceived == 1 { break } 
    i += 1 
    print(i) 
} 

let endTime = Date() 
print("Program has run for \(endTime.timeIntervalSince(startTime)) seconds") 

修改自this gist