0
下面的代碼簡單地計算了寫入文件所花費的時間。對write()和read()sys調用花費的時間感到困惑
#include<time.h>
void main()
{
int fp;
long a,b;
char *str = "Life is like that only";
fp = open("tmp.txt",O_WRONLY,0666);
time(&a);
write(fp,str);
time(&b);
/*(b-a) should be the time taken to write
* the file tmp.txt.
*/
close(fp);
return;
}
我的問題是,如果我們有一個單一的CPU然後是否所花費的時間(B-A)將是精確的或者它可以通過其它過程並行運行的執行的影響。 這裏的一些帖子提到write()和read()幾乎可以像原子系統調用一樣對待,就好像它們不成功一樣,EINTR被設置爲僅僅意味着再試一次。但是如果它成功的話,其執行所有其他進程都處於暫停狀態。
數據量並不是我關心的問題,現在是時間,如果它可以是一個確切的或上下文切換可以使它錯誤。 – 2012-01-18 18:09:42