partial write
対象が端末、ネットワーク、SVR4 のストリーム装置などの装置では、
write(2) は書き込み要求したバイト数より少ない値を返すことがある。
フロー制御などのためである。
(詳解UNIXプログラミング 12.8)
dual.py
def writeall(fd, data): while len(data) != 0: n = os.write(fd, data) data = buffer(data, n)
APUE 12.8 には同様の writen() 関数が書かれている。