0

在 Fedora 16 上,在一个只对文件执行 10 次 1024 字节写入的小程序上运行 time(1),报告“24 个输出”。我期望 I/O 计数为 10。请注意,如果我在程序上运行 strace,我可以看到 10 个 write() 调用。那么 time(1) 报告的 I/O 计数是多少?多谢

#!/usr/bin/python

import os
import pdb

SIZE_IO=1024
IONB=10

def test1(file):
    #pdb.set_trace()
    buffer= '\x01' * SIZE_IO
    fd = os.open(file, os.O_CREAT|os.O_RDWR, 0777)
    for ix in range(IONB):
        len = os.write(fd, buffer)
        print len
    os.close(fd)
    return 1

if name__== "__main":
    test1("ttt.txt")
    print 'ok'
4

2 回答 2

2

不是每个打印都会导致写入吗?

于 2012-05-23T15:06:18.913 回答
0

摘自手册页中的ACCURACY部分time(1)

'%I' 和 '%O' 值据称只是“真实”输入和输出,不包括缓存设备提供的值。'%I' 和 '%O' 报告的 'real' I/O 的含义对于工作站来说可能是混乱的,尤其是无盘工作站。

于 2012-05-23T16:00:10.390 回答