wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了fopen()在win32上的表现大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试编写一些适用于 Linux和Win32的代码.我发现它们之间最显着的区别(在我的代码中)是fopen()的性能. 以下代码在我的Ubuntu上需要5秒,而相同的代码在Windows XP上需要超过100秒.我想在这里做一个说明,ubuntu是VM,而XP是在真机上. time_t start = time(null); for(int i=0; i < 100000; ++i){
我正在尝试编写一些适用于 Linux和Win32的代码.我发现它们之间最显着的区别(在我的代码中)是fopen()性能.
以下代码在我的Ubuntu上需要5秒,而相同的代码在Windows XP上需要超过100秒.我想在这里一个说明,ubuntu是VM,而XP是在真机上.
time_t start = time(null);
    for(int i=0; i < 100000; ++i){
        FILE *fp = fopen("a.txt","a");
        if (fp != NULL)
        {
            fprintf(fp,"Hello World");
            fclose(fp);
        }
    }
    time_t end = time(null);

    printf("\n It took %d seconds \n",end-start);

很明显,fopen()是造成这种差异的原因.我想知道为什么会有这么大的差异?

@H_197_21@

不,它更可能是@L_675_10@系统刷新.在你编写的一个系统上,或者更有可能调用fclose()时,它会阻塞,直到字节在物理上位于磁盘上(或者至少直到磁盘显示它们为止) – 另一方面@L_675_10@系统立即返回,即使苍蝇是还在写

大佬总结

以上是大佬教程为你收集整理的fopen()在win32上的表现全部内容,希望文章能够帮你解决fopen()在win32上的表现所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。