Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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 如何在我的库中处理多个i/p文件支持?_C - Fatal编程技术网

C 如何在我的库中处理多个i/p文件支持?

C 如何在我的库中处理多个i/p文件支持?,c,C,看,我正在编写一个avi解复用器库。在其中,我导出了多个API以实现不同的功能。现在,当第一次使用i/p文件名调用一个aviopen()时,我解析整个文件,并将一些信息保存在malloc中的某个结构中。现在,当再次为该文件调用任何API时,都应该使用该结构的信息&做一些工作 我不想向库用户公开这些结构。甚至我也不想给他那个结构的指针。在这种情况下,我如何跟踪该结构 我还想在我的库中提供多文件支持,这样如果任何应用程序希望一次打开多个文件,那么他就可以这样做 所以在这里,我如何为分配的结构维护每个

看,我正在编写一个avi解复用器库。在其中,我导出了多个API以实现不同的功能。现在,当第一次使用i/p文件名调用一个aviopen()时,我解析整个文件,并将一些信息保存在malloc中的某个结构中。现在,当再次为该文件调用任何API时,都应该使用该结构的信息&做一些工作

我不想向库用户公开这些结构。甚至我也不想给他那个结构的指针。在这种情况下,我如何跟踪该结构

我还想在我的库中提供多文件支持,这样如果任何应用程序希望一次打开多个文件,那么他就可以这样做

所以在这里,我如何为分配的结构维护每个打开文件的句柄

An是实现这一点的常用方法

如果出于某种原因根本不想传递指针,可以保留结构的全局(“私有”)数组/散列,并在该全局容器中为用户提供一个索引(可以是纯int)。不过,这比仅仅分发不透明的指针要复杂得多(而且更容易出错,而且可能更活泼)