Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C fread,fwrite用于大尺寸视频文件(约180MB)_C_Video_Fwrite_Fread - Fatal编程技术网

C fread,fwrite用于大尺寸视频文件(约180MB)

C fread,fwrite用于大尺寸视频文件(约180MB),c,video,fwrite,fread,C,Video,Fwrite,Fread,我想读取一个视频文件并保存为二进制文件,然后再次写入视频文件。 我测试了180MB的视频。我使用了fread函数,它出现了分割错误,因为视频的数组大小很小 以下是我的问题: 我使用160*1024字节的字符数组。字符数组的最大大小是多少?我怎样才能解决这个问题 该计划需要在以下方面发挥作用: 读取128字节的视频->加密->写入128字节 读取下一个128字节->加密->写入下一个 由于公司的安全规定,我无法上传我的代码。任何提示都将不胜感激。首先使用fseek()和SEEK\u END,然

我想读取一个视频文件并保存为二进制文件,然后再次写入视频文件。 我测试了180MB的视频。我使用了fread函数,它出现了分割错误,因为视频的数组大小很小

以下是我的问题:

  • 我使用160*1024字节的字符数组。字符数组的最大大小是多少?我怎样才能解决这个问题

  • 该计划需要在以下方面发挥作用:

    • 读取128字节的视频->加密->写入128字节
    • 读取下一个128字节->加密->写入下一个
  • 由于公司的安全规定,我无法上传我的代码。任何提示都将不胜感激。

    首先使用
    fseek()
    SEEK\u END
    ,然后使用
    ftell()
    确定文件大小,然后使用
    malloc()
    分配所需内存并将数据写入该内存

    如果我理解正确,您不需要分配这么多内存,只需分配128字节

    char buf[128];
    while(/* condition */)
    {
      ret = fread(buf, sizeof buf, 1, fp_in);
      encrypt(buf);
      ret = fwrite(buf, sizeof buf, 1, fp_out);
    }