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

文件操作的程序,帮我看看

    来源: 互联网  发布时间:2016-02-09

    本文导语:  这个程序想实现从标准输入输入一行,就写入文件一行,直到输入quit为止,可是为什么程序编译通过,运行也不打印错误,但是就是写不进文件呢?而且还有奇怪的回显,你输入一行,它回显一行,加个奇怪的小尾巴. #include  #inc...

这个程序想实现从标准输入输入一行,就写入文件一行,直到输入quit为止,可是为什么程序编译通过,运行也不打印错误,但是就是写不进文件呢?而且还有奇怪的回显,你输入一行,它回显一行,加个奇怪的小尾巴.
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define NEWFILE (O_WRONLY|O_CREAT|O_TRUNC)
#define SIZE 10

int main(void)
{
        int outfile;
   char filename[] = "test.dat";
   char buffer[SIZE];

   if(outfile=open(filename, NEWFILE, 0640)==-1)
   {
        printf("Error, Open file failed!n");
        exit(255);
   }
   gets(buffer);
   while(strcmp(buffer,"quit"))
   {
             if(write(outfile, buffer, sizeof(buffer))==-1)
             {
                 printf("ERROR,WRITE FAILED: n",sys_errlist[errno]);
                 exit(255);
             }
             gets(buffer);
    }
    close(outfile);
    return 0;
}

|
这个问题就是不断gets后,没有赋字符串结束符所导致!
你用标准的C函数去操作文件试试
int main(void) 
{  
   char filename[10] = "test.dat"; 
   char buffer[SIZE]; 
   FILE *fp;

   if(fp=fopen(filename,'w')==NULL) 
   { 
        printf("Error, Open file failed!n"); 
        exit(255); 
   } 
   gets(buffer); 
   while(strcmp(buffer,"quit")) 
   { 
             if(fwrite(fp, buffer, sizeof(buffer))==-1) 
             { 
                 printf("ERROR,WRITE FAILED: n",sys_errlist[errno]); 
                 exit(255); 
             } 
             buffer[0]='';
             gets(buffer);
 
    } 
    fclose(fp); 
    return 0; 
}

|
 if(outfile=open(filename, NEWFILE, 0640)==-1)
的问题,==的优先级比=高,
改成
if((outfile=open(filename, NEWFILE, 0640))==-1)
就可以了

    
 
 

您可能感兴趣的文章:

  • MyEclipse如何查看和设置文件编码格式相关操作
  • 在linux操作系统上向ftp服务器(linux系统)上上传文件,我要纪录操作日志,得到上传到ftp服务器上的文件的路径问题?
  • 求助文件操作中修改文件中字段的问题,请大家帮忙解决 iis7站长之家
  • C#操作txt文件,进行清空添加操作的小例子
  • CentOS yum 源设置为163的源操作步骤及配置文件参考
  • 请问:如何让对多个现有的文件的写操作成为一个原子操作,并可以实现安全的回滚功能?
  • Linux下u盘文件系统相关操作
  • Python文件操作类操作实例详解
  • python读文件,写文件操作以及目录操作
  • 客户端如何操作服务器的文件(如查看文件列表,上传,下载)(★)
  • 什么操作系统能建立文件名大于256的文件
  • 我想按照文件名合并一些文件内容,如何操作
  • linux下如何对文本文件和记录文件进行插入删除操作啊?
  • 文件操作 多个进程打开文件 不加锁 情况如何
  • 急:如何在一个已经打开的文件中定位,比如在文件中实现指针前移和后移这种操作
  • 怎样让DOS支持长文件名,且能用COPY等原命令对长文件名操作?
  • jsp中对文件操作,怎样判断是否已到文件尾?
  • 救命呀,LINUX删除用户操作后,我的WINDOWS文件系统文件丢失了!在线等!
  • 求助文件操作中修改文件中字段的问题,请大家帮忙解决
  • 看到一个问题不错,我也想知道,就转过来,请教各位:如何让虚拟空间用户不能执行他自己文件外的文件操作命令?
  • 怎样用chmod将一个文件夹中所有文件改为777的权限(即可以进行任何操作)
  • 红旗linux的帮助文件放在哪个文件夹里啊,我想拷到我的机器上看看,怎么弄啊??????
  • 哪位大哥知道如何将rtf文件转化成html文件,请赐教,最好给个程序看看!多谢,多谢,120分奉上!!!
  • linux的帮助文件在什么地方啊,我想看看关于c++的帮助文件。另外从哪里能搞到c++的类库说明阿
  • Linux + Windows2000 双启动,Windows2000起不来了,说是文件被破坏,进来看看……
  • ssh 上传文件出错,大家看看,是什么原因。谢谢
  • 大家帮我看看,这个文件的意思.
  • 能否选出ls -l中的文件(非目录),然后du -m一下,看看多大?
  • linux局域网内文件夹共享问题,各位兄弟帮忙看看,谢谢
  • 帮忙看看,gcc中 把所有的目标文件链接为动态库 的命令 错在哪里?
  • sh 里面ftp上传文件的代码。大侠帮忙看看下面的代码有什么问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


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

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

    浙ICP备11055608号-3