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

fwrite 居然返回错误,怎么回事,在线等待,解决立即给分

    来源: 互联网  发布时间:2015-09-30

    本文导语:  我写了一个小程序,其中要打开一个日志文件,向里面写一些东西,但是fwrite返回1,用perror打印:Numerical result out of range 什么意思啊?我的程序如下: #include int main() {     FILE* fp = NULL;     char* str = "haha";...

我写了一个小程序,其中要打开一个日志文件,向里面写一些东西,但是fwrite返回1,用perror打印:Numerical result out of range 什么意思啊?我的程序如下:

#include
int main()
{
    FILE* fp = NULL;
    char* str = "haha";
    int count = 0;
    fp = fopen("log.tsk","w+");
    if(!fp)
    {
        return;
     }
    count = fwrite(str,strlen(str),1,fp);
    perror("error");
    return (0);
}
程序运行创建了log.tsk文件,但是打印出Numerical result out of range 的错误,怎么回事,请指点,谢谢

|
这里有几个建议希望能够帮助你:
1。 首先创建调试文件 最好用 "w"
2.  FILE *fp;
    创建文件指针的时候最好不要先赋NULL
3。 打开文件指针后要fclose指针
4。 在fwrite中最好使用sizeof()函数来取得对象空间
    不要用strlen函数
5。fwrite函数第一个参数 最好定义成 数组或者结构 然后引用数租名或者结构名
   不要直接使用指针



   希望能够帮助你
   这样再试一下

|
其实并没有错,在perror()前应该判断fwrite()的返回值,如果返回值错误才需要调用perror(),或者在fwrite()前把errno清0也不会有问题。

|
94

|
改成 
 fp = fopen("log.tsk","a+");

|
FILE *fp;

fp = fopen("log.txt","a+");
if (fp == NULL)
{
//错误输出语句
fclose(fp);
}

fprintf(fp,"Hello world!");
fclose(fp);


|
给你个参考:
http://www.pgsqldb.org/pgsqldoc-7.0c/x18242.htm

|
以前一直没close吧!

|
程序没错误啊
又见人品问题:)

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












  • 相关文章推荐
  • linux fwrite 阻塞问题
  • FILE* stream fread fwrite 的使用方法
  • read/write 和 fread/fwrite 有什么区别
  • fwrite的问题
  • fwrite写文件时出现乱码
  • linux下利用fwrite文件写入过程中突然断电的处理
  • 简易个人笔记记录式系统 fwrite
  • write或fwrite的问题
  • 我想查看fputs(),fread(),fwrite(),fclose()函数的源代码,请问这部分的源代码在哪个RPM包里。
  • 做socket程序,用recv,send这些函数好还是用fread,fwrite好?
  • read/write已经有了缓冲实现,为什么fread/fwrite还要实现缓冲?
  • 驱动fwrite调用失败??(已解决,快来人接分呀)
  • 程序调试问题,关于文件的fopen fclose fwrite的问题(在线等!)谢谢!
  • fwrite()库函数为什么会吃内存?


  • 站内导航:


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

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

    浙ICP备11055608号-3