当前位置:  技术问答>想了解LINUX一定能明白汇编语言吗? iis7站长之家

了解文件读写的朋友来看下--为什么会写零?(有代码)

    来源: 互联网  发布时间:2016-07-19

    本文导语:  本帖最后由 jerry_gao_jie 于 2009-12-02 16:15:15 编辑 //w.c //写文件代码,不断的写数据 #include  int main() {     FILE *fp;     int i = 0;     fp = fopen("./aaaaa", "w");     while(1)     {         fprintf(fp, "%dn", i);         pr...

本帖最后由 jerry_gao_jie 于 2009-12-02 16:15:15 编辑

//w.c
//写文件代码,不断的写数据
#include 
int main()
{
    FILE *fp;
    int i = 0;
    fp = fopen("./aaaaa", "w");
    while(1)
    {
        fprintf(fp, "%dn", i);
        printf("%dn", i);
        fflush(fp);
        i++;
        usleep(1000);
    }

}

编译:gcc w.c -o w



//r.c
//读数据代码,当数据读完之后,把文件清空
#include 
int main()
{
    FILE *fps, *fpd;
    char buf[8];
    fps = fopen("./aaaaa", "r");
    fpd = fopen("./baaaa", "w");
    while(fgets(buf, 8, fps) != NULL)
    {   
        fprintf(fpd, "%s", buf);
    }   
    truncate("./aaaaa", 0); 
    fclose(fps);
    fclose(fpd);
}
编译:gcc r.c -o r


先运行./w ,然后运行./r,r结束之后把w停掉。现在开始查看文件aaaaa和baaaa,会发现aaaaa前N个字节都是'',何解?

|
多个进程并发访问同一个资源,要加锁保护。
用信号灯吧。

|
你这个w.c是个死循环啊

|
同时对一个文件写要加锁

truncate("./aaaaa", 0); 

你已经把aaaa的大小截成0了

|
不同的进程对文件进行操作  给文件加lock

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • win7, win8安装docker需要了解的概念
  • 想了解LINUX一定能明白汇编语言吗?
  • 八个问题帮你快速了解Docker
  • 进程迁移问题,急切想了解!!!!!!!!
  • 程序猿,千万别说你不了解Docker!
  • 谁了解Panabit,用它来做流控效果如何
  • 想深入了解操作系统该怎么做
  • 谁对JBuilder4比较了解,有什么好书可以介绍,或有什么建议
  • 关于JIT技术,有对它了解的朋友吗?
  • 要学习JSP,一定要先了解XML吗??
  • 谁了解JAVA方面的认证,想考一个JAVA的认证!XIEXIE
  • 了解一下北京搞java的要求和待遇,来者有分。
  • 我想了解一下,用LINUX的朋友们,
  • 关于Linux的文化了解
  • 有谁了解“江苏新晨信息科技发展有限公司”吗,公司怎么样?
  • 谁了解postsql
  • 有没有在大连搞linux的,我想了解一下大连的linux情况!
  • 有谁了解postsql
  • L想了解一下Linux驱动开发的前景如何?难度大小如何?
  • 菜鸟问题:如何了解系统关于某个C语言变量类型是怎样定义的?
  • 请问:做(linux)驱动开发对于电子技术需要了解到什么程度,


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3