C++ memset - 提取大小字节并将它们复制到缓冲区中提供的数据地址

标签 c++ binary char memset

有没有办法从一个字符指针设置起始位置,它是内存中的一个文件。

我需要从流中读取数据的提取大小字节,并将它们复制到提供的数据地址并返回读取的字节数。 这是我的 memset 试用版,我尝试对内存中的文件执行类似 fread 的操作。 希望可以有人帮帮我。

typedef signed   long long Int64; // osx for example

Int64 FileStream::read(void* data, Int64 size)
{
  // make sure, that size was not > as filename
  Int64 wanted_buffer = currentposition + size;
  if (wanted_buffer > memfile->GetSize())
    size = memfile->GetSize() - currentposition;

  // tryout with memcpy
  memcpy(data, currentposition + memfile->GetBuffer(), size);
  currentposition += size;    

  // like
  // return std::fread(data, 1, static_cast<std::size_t>(size), m_file);

  return currentposition;
}

最佳答案

如果您能够使用 c FILE 结构,您可以在 FILE * 上使用 fseek

关于C++ memset - 提取大小字节并将它们复制到缓冲区中提供的数据地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468057/

相关文章:

c++ - 将 VARIANT 从 COM 编码回 C++ 客户端

c++ - 在类构造函数中安全地连接 C 字符串

c++ - 如何比较 CUDA C++ 中的 char 数组?

c++ - 将 wchar_t 转换为 char C++

bash - 将 ASCII 中的 Char 值保存在 bash 变量中

c++ - 窗口拒绝呈现

c++ - 动态分配模板类时出现编译器错误,其中类型是模板类型的另一个对象

binary - 将十进制数转换为 excess-127 表示

java - 如何从 Java 中的二进制表示形式获取 float ?

c++ - C++ 中的 n 位 2s 二进制到十进制