0

我正在开发一个加密静态数据的项目,然后将加密的数据解密到一个临时文件中,以便将未加密的数据写入 XML 流。加密和解密工作,但我无法从文件中读取数据。我相信这是由于文件仍在打开,但我无法关闭文件,因为它在关闭时被删除。我想知道是否有办法从这个文件中读取?

作为最后的手段,我可​​以重写代码以仅使用大型加密缓冲区而不是文件,但我想弄清楚如何从打开的文件中读取数据。

编辑:我之前应该说过,我在 C++ 类中有解密逻辑,并且我用 extern "C" 将我需要的函数移植到 C 中。进行解密的函数在 C++ 中,它允许我从文件描述符中获取 HANDLE,然后使用 FlushFileBuffers(HANDLE) 刷新缓冲区。

4

1 回答 1

1

输入和输出可以在 C 库级别和内核级别进行缓冲;在缓冲区被刷新之前,来自一个进程的写入不一定立即对另一个进程可见。如果您使用 C 库的标准 IO 功能,则可以fflush在编写器进程中使用以确保其输出可用于读取器进程。

于 2013-06-20T14:51:31.987 回答