2013-04-26 12 views
7

ターミナルのサイズを取得したいと思います。私はこの機能を使用しています:termios.TIOCGWINSZとは

import sys, struct, fcntl, termios 

s = struct.pack('HHHH', 0, 0, 0, 0) 
t = fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ, s) 
print(struct.unpack('HHHH', t)) 

termios.TIOCGWINSZは何ですか?

答えて

14

respで実行しているシステムによって決まる魔法の定数です。ターミナルドライバーによって。

ioctl()と組み合わせて、あなたが望むものを伝えるのに役立ちます。あなたのケースでは、IOCtlを呼び出してウィンドウサイズを取得します。従って、名称は、TIOCGWINSZ,IOCtlからGなどWINdow Si Zeである。

This bit of documentationは、問題を解決するのに役立ちます。

+1

@KevinBurke私がこれを書いた方法は、定数がこのように名前が付けられた理由を明確にすることを意図していました。 – glglgl

+1

しかし私はそれが醜いと認めます。 – glglgl