是否有一个标准的C/C++函数,它接受文件句柄/指针或指向内存缓冲区的指针,并从文件/缓冲区中读取数据?
我有一个函数从文件中提取数据,对所述数据执行操作,并通过套接字发送出去.我还有一个函数,它以char缓冲区的形式获取数据,对该数据执行完全相同的操作,并通过套接字发送它.这个问题并不难.我只是觉得如果有像这样的功能会很方便
read(void *dest, void *src, int src_type, size_t amount)
Run Code Online (Sandbox Code Playgroud)
在C++中,您可以使用std::istream带有std::ifstream实现的文件或带有实现的内存缓冲区作为抽象std::istringstream.
这种方法的优点在于您的函数不需要知道实现类型,因为通过引用接收参数就足够了:
void readData(std::istream& in_data) {
...
}
Run Code Online (Sandbox Code Playgroud)
然后调用者将构造一个适当的实现,并将其传递给readData.