沸羊羊的学习号 2019-05-21 17:15 采纳率: 0%
浏览 297

linux 下文件操作引起的程序崩溃

下面这段代码我在测试运行时读取和发送都能正常执行,但是读取结束后的fclose时,程序就会崩溃
,其中文件指针是全局的,读取时的大小是一次1024个字节,GDB调试出来好像是内存非法,但是看不出哪里的问题,请大佬帮忙看下,谢谢

int msgDealFunc(unsigned char *buf)
{
    char sendBuf[1500+1]={0};
    char fileContent[1024+1]={0};
    int sendLen = 0;
    short int readLen = 0;
    int fromStartBytes = 0;
    char nameBuf[128]={0};
    int fileSize = 0;
    int spliteNum = 0;
    int loseId = 0;
    int index;
    long filePosition =0;
    printf("1111111111111111111\n");
    if(buf[0]==0x02&&buf[1]==0x00)
    {
        sprintf(nameBuf,"%s/%s",FILEPATHDIR,FILENAME);
        fileSendInfoT.fileSend = fopen(nameBuf,"rb");
        printf("22222222222222222222222\n");
        for(index =1;index<1025;index++)
        {
            printf("333333333333333333333333333\n");
            fromStartBytes = ftell(fileSendInfoT.fileSend);
            printf("44444444444444444444444444444444\n");
            readLen = fread(fileContent,sizeof(char),SPLITESIZE,fileSendInfoT.fileSend);
            printf("55555555555555555555555555555\n");
            if(readLen > 0)
            {
                sendLen = makeMsg101(sendBuf,fileContent,readLen,index,fromStartBytes);
                printf("6666666666666666666666\n");
                udpSend(UNICAST, sendBuf, sendLen);
                printf("77777777777777777777\n");
                idWithPositionT[index].position = fromStartBytes;
                sendAdd++;
            }
            else
            {
                break;
            }
        }
        fclose(fileSendInfoT.fileSend);
        sendLen = makeMsg110(sendBuf,index-1);
        udpSend(UNICAST,sendBuf,sendLen);
        //fileSendInfoT.groupNumRecord++;

    }
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 16:21
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器