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

用fwrite()向一个已打开的文件写入结构体,出现“段错误”

    来源: 互联网  发布时间:2016-12-04

    本文导语:  本帖最后由 yuanzhenhai 于 2011-06-04 10:05:11 编辑 用fopen()打开两个文件,一个是在本地文件夹中存在的,以“只读”方式打开;第二个以“可写”的方式打开。对第二个打开的文件操作,两种方式,一种是写入字符串,另...

本帖最后由 yuanzhenhai 于 2011-06-04 10:05:11 编辑
用fopen()打开两个文件,一个是在本地文件夹中存在的,以“只读”方式打开;第二个以“可写”的方式打开。对第二个打开的文件操作,两种方式,一种是写入字符串,另一种是写入一个结构体。在写入结构体的情况,在后面feof()第一个文件出现“段错误”。  不解不解,,,,,



#include 
#include    // exit()
#include    // bzero()
#include
#include
#include
#include        /*stat用到*/



#define TMEP_BUFFER_SIZE 200
#define STRUCT

struct RIFF_HEADER
{
    char        szRiffID[4];  // 'R','I','F','F'
    unsigned int       dwRiffSize;  // 整个wav文件大小减去szRiffID和szRiffFormat所占用的字节数
    char        szRiffFormat[4]; // 'W','A','V','E'
};

int main(int argc,char* argv[])
{
FILE *wav_in;
FILE *wav_out;
int ret;

if(argc != 3 )
{
printf("Usage:nt%s  n", argv[0]);
exit(-1);
}

wav_in = fopen(argv[1],"rb");
if(wav_in == NULL)
{
printf("Can't open input file %sn", argv[1]);
return (-1);
}

wav_out = fopen(argv[2],"wb");
if(wav_out == NULL)
{
printf("Can't open input file %sn", argv[1]);
return (-1);
}
#ifndef STRUCT
char str[] = "abcdefg";
ret = fwrite(str,sizeof(str),1,wav_out);
if(ret 

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












  • 相关文章推荐
  • linux fwrite 阻塞问题
  • FILE* stream fread fwrite 的使用方法
  • read/write 和 fread/fwrite 有什么区别
  • fwrite的问题
  • fwrite写文件时出现乱码
  • 简易个人笔记记录式系统 fwrite
  • write或fwrite的问题
  • 我想查看fputs(),fread(),fwrite(),fclose()函数的源代码,请问这部分的源代码在哪个RPM包里。
  • 做socket程序,用recv,send这些函数好还是用fread,fwrite好?
  • read/write已经有了缓冲实现,为什么fread/fwrite还要实现缓冲?
  • CSS属性参考手册 iis7站长之家
  • 程序调试问题,关于文件的fopen fclose fwrite的问题(在线等!)谢谢!
  • fwrite()库函数为什么会吃内存?


  • 站内导航:


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

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

    浙ICP备11055608号-3