2017-03-07 4 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에서 수정되었습니다.