gpt4 book ai didi

c - 是否可以在自定义结构上使用作用于 FILE* 的函数?

转载 作者:行者123 更新时间:2023-12-02 21:07:37 30 4
gpt4 key购买 nike

我经常看到库实现自己的流功能,而不是使用 FILE*。典型的接口(interface)将有一个关闭函数,类似于fclose(),以及几个打开函数,其中一个通常模仿fopen(),其中一个通常接受一些应该用于打开/关闭流、从流中读取/写入的回调。

作为引用,我所说的很好的例子是 http://www.xmlsoft.org/xmlio.htmlhttps://developer.gnome.org/gio/ .

一般来说,这种方法对我来说似乎非常简单,但是这些库通常不会实现标准库中所有函数的替代(例如, fscanf()fprintf (),...)。

因此我想知道标准库 FILE* 是否也可以使用扩展机制(例如:通过为某些低级所需功能提供回调来打开)。我无法找到有关此功能的任何引用资料,因此我猜它不是任何标准的一部分。

无论如何,我的问题是:C 标准库中是否提供此功能(任何标准都可以,只要它是可移植的)?如果没有,是否有任何简单的(即,不需要重新实现整个 stdio.h 函数)选项允许在标准库之上实现它?

最佳答案

这取决于您使用的 C 库。例如,Glibc 通过 fopencookie 支持自定义流(further documentation here)。 FreeBSD(可能还有其他 BSD,包括 OS X)有 funopen 。 Microsoft 的 C 库似乎不支持这样的功能。

关于c - 是否可以在自定义结构上使用作用于 FILE* 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272652/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com