Getting terminal width in C?からCコードは簡単スウィフトに翻訳されています
import Darwin
var w = winsize()
if ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0 {
print("rows:", w.ws_row, "cols", w.ws_col)
}
(何らかの理由で、これはXcodeのデバッガコンソールでは動作しません、 あなたは、ターミナルウィンドウで実行可能ファイルを呼び出す必要があります。)
また
、(Getting terminal width in C?から)ncursesライブラリを使用して:
import Darwin.ncurses
initscr()
let s = "rows: \(LINES), cols: \(COLS)"
mvaddstr(1, 1, s);
refresh();
getch()
endwin()
ウィンドウresizを追跡するためにあなたがTrapping signals in a Swift command line applicationを比較し、 SIGWINCH信号を処理する必要がEイベント:bashシェルで
import Darwin
import Dispatch
var w = winsize()
if ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0 {
print("rows:", w.ws_row, "cols", w.ws_col)
}
let sigwinchSrc = DispatchSource.makeSignalSource(signal: SIGWINCH, queue: .main)
sigwinchSrc.setEventHandler {
if ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0 {
print("rows:", w.ws_row, "cols", w.ws_col)
}
}
sigwinchSrc.resume()
dispatchMain()
、 'LINES'と' COLUMNS'環境変数は、画面サイズを与えます。しかし、それらはMacのSwiftコマンドラインツールで 'ProcessInfo.processInfo.environment'を使って私には見えません。 – rmaddy