2012-05-23 33 views
0

,運行時間爲(1)一個小程序,它只是向文件寫入1024個字節,報告「24個輸出」。我期待I/O計數爲10.請注意,如果我在程序上運行strace,我可以看到10個write()調用。 那麼按時間(1)報告的I/O數是多少? 非常感謝GNU時間(1)在fedora 16上報告錯誤的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' 
+0

請向我們展示您運行的命令以及「小程序」。 ! – robert

+0

#在/ usr/bin中/ Python的 進口OS SIZE_IO = 1024 IONB = 10 高清test1的(文件): #pdb.set_trace() 緩衝= '\ X01' * SIZE_IO FD = os.open (文件,os.O_CREAT | os.O_RDWR,0777) 用於1x在範圍(IONB): LEN = os.write(FD,緩衝液) os.close(FD) 返回1 如果__name __ ==「__main__ 「: test1(」ttt.txt「) print'ok' – jfas

+0

而您使用的'time'命令與輸出?另外,請驗證我的格式。 – robert

回答

2

是不是每個打印都會導致寫入?

+0

嗨,刪除打印()沒有影響..計數保持不變 – jfas

0
time(1)手冊頁的 ACCURACY

摘錄:

的「%I」和「%O」值是據稱僅「真實」的輸入和輸出 ,並且不包括由高速緩存提供設備。由'%I'和'%O'報告的'真正'I/O的含義 可能會混淆工作站, 尤其是無盤的。