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