我编写了一个自定义外部文件处理程序(EXTFH),但在某些情况下我想恢复为Micro Focus EXTFH。这些案例是基于文件的(而不是基于文件类型的文件类型)。
我的想法是,在OPEN时,我在FCD中放置一个标记,告诉后续操作(READ,WRITE,CLOSE)关于哪个EXTFH正在使用。
我的EXTFH具有控制权,如果FCD中有一个地方可以保证不被MicroFocus破坏,那么逻辑可以非常简单。
FCD中是否有一个地方(fcd2.h和fcd3.h)我可以将打开的文件标记为由我的EXTFH打开?
我最糟糕的情况是我保留了已分配的fcd->句柄指针列表,如果我分配了它,则直接指向我的EXTFH。如果没有,请直接前往MF EXTFH。
以下是Micro Focus on EXTFH的文档: http://supportline.microfocus.com/documentation/books/sx20books/fhexfh.htm
这是较旧的文档,但似乎是最新的。
[编辑以阐明我们将如何使用detect来使用:我们将使用文件名上的扩展名来确定要使用的文件处理程序。例如,如果扩展名为:.xyz,则使用我们的EXTFH,否则使用MF EXTFH]。看来我们可以检查每个文件的文件名,但我认为如果我们只检查OPEN就会更清晰。对于该文件的后续调用,我们只需检查FCD中的内容。