0
コマンドラインプログラムがユーザーによって停止され、swiftで書かれた(ターミナルで実行されている)コマンドラインプログラムからいくつかのアクティブなBluetooth接続を解放する必要があることを知る必要があります。Swift:コマンドラインツール出口コールバック
ユーザーがプログラムを呼び出すと、Ctrl + Zキーを押して終了するとします。 どうすればわかりますか?
コマンドラインプログラムがユーザーによって停止され、swiftで書かれた(ターミナルで実行されている)コマンドラインプログラムからいくつかのアクティブなBluetooth接続を解放する必要があることを知る必要があります。Swift:コマンドラインツール出口コールバック
ユーザーがプログラムを呼び出すと、Ctrl + Zキーを押して終了するとします。 どうすればわかりますか?
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から変更しました。