当前位置:  技术问答>linux和unix

fopen 打开已存在的文件,报 No such file or directory

    来源: 互联网  发布时间:2017-03-07

    本文导语:        在 suse linux server 11 服务器上, 在 vsftpd 程序中,增加了一段代码写临时日志文件,便于跟踪调试,    但在程序执行到写日志的代码时, 报错   No such file or directory    在没有生成这个日志文件...

  
   在 suse linux server 11 服务器上, 在 vsftpd 程序中,增加了一段代码写临时日志文件,便于跟踪调试,
   但在程序执行到写日志的代码时, 报错   No such file or directory

   在没有生成这个日志文件时, 与 手动新建这个日志文件,两种情况下,都报出了这个错.



   写日志代码如下 

    FILE* fp = fopen("/var/log/test.txt","w");
    if(fp != NULL)
    {
         fprintf(fp,"%s","begin to  trace!");
         fclose(fp);
    }
 

   程序运行的环境说明如下:

   vsftpd 程序的用户是  root

   vsftpd 程序布署的目录是 /usr/sbin   
   sbin 目录属性  drwxrwxrwx   2 root root 16384 Aug  3 16:57 sbin
   var  目录属性  drwxrwxrwx  14 root     root   4096 Mar  9 11:11 usr

    日志文件  test.txt   
    保存的目录是   /var/log/

    var 目录属性  drwxrwxrwx  16 root     root   4096 Mar  9 11:13 var
    log 目录属性  drwxrwxrwx 13 root root  4096 Aug  3 15:45 log    



    在 var/log/ 下执行  ls -ltr test.txt 结果如下

    ZXKF3:/var/log # ls -ltr test.txt
    -rwxrwxrwx 1 root root 0 Aug  3 16:24 test.txt    


   想请大侠们帮忙分析下 ,问题的原因在哪?  



    



              
    

|
自己动手丰衣足食,接分

|
写日志一般采用 a+ 模式


       r      Open text file for reading.  The stream is positioned at the beginning
              of the file.

       r+     Open for reading and writing.  The stream is positioned at the
              beginning of the file.

       w      Truncate file to zero length or create text file for writing.  The
              stream is positioned at the beginning of the file.

       w+     Open for reading and writing.  The file is created if it does not
              exist, otherwise it is truncated.  The stream is positioned at the
              beginning of the file.

       a      Open for appending (writing at end of file).  The file is created if it
              does not exist.  The stream is positioned at the end of the file.

       a+     Open for reading and appending (writing at end of file).  The file is
              created if it does not exist.  The initial file position for reading is
              at the beginning of the file, but output is always appended to the end
              of the file.

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • fopen 打开一个文件多次突然失败
  • ARM平台下fopen打开文件出现段错误
  • 请问为何fopen()函数不能正确打开文件。
  • fopen第二个参数-打开模式的问题
  • 请教大家Linux下fopen最大能打开几G文件?
  • 为什么我用fopen打开两个不同的文件,得到相同的指针地址呢
  • fopen()、fdopen()对应的删除文件的函数分别是什么? iis7站长之家
  • 在Linux下怎样用fopen打开一个文件?
  • fopen打开的文件,如何实现当文件达到一定大小后,重头进行覆盖写入
  • codeblocks8.02 for linux,程序可以编译通过,但是通过右键“查找fopen函数的声明”或“实现”,都是提示“没有找到:fopen”,为什么
  • fopen问题请教
  • 关于fopen函数
  • linux程序关于fopen的疑问!
  • fopen能这么用吗?
  • open和fopen的区别?
  • 奇怪的fopen问题,创建不了文件,错误号却返回0
  • fopen出的错?
  • fopen函数打不开一个郁闷的文件
  • 想看fopen函数的源码
  • flock与fopen的问题?
  • 关于fopen,fread,fgets的问题,请教
  • 关于fopen以及编码的问题
  • Solaris上fopen的问题
  • 请教 ,为什么fopen("./hzk16", "rb")总返回NULL
  • fopen的缓冲区是虚拟文件系统,还是在lib层?
  • fopen()、fdopen()对应的删除文件的函数分别是什么?
  • 我在linux下用fopen打不开中文名的文件,请帮忙
  • 有关fopen的问题
  • PHP fopen()和 file_get_contents()应用与差异介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3