Изменить поток файлов для функции ошибки HDF5 H5E.print - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь распечатать журнал ошибок, сгенерированный библиотекой HDF5, в файл .txt.

При сбое функции HDF5 она генерирует ошибку и сама печатает ошибку в консоли в консольном приложении.В другом случае вы можете отключить автоматическую печать ошибок из стека, используя H5E.set_auto () , а затем явно распечатать сообщение, используя H5E.print .Полная документация доступна здесь .

herr_t H5Eprint (hid_t estack_id, FILE * stream))

Для C # этот синтаксис равен

int H5E.print (Int64 estack_id, Intptr stream))

У меня вопрос

Я хочу перенаправить это сообщение об ошибке из консоли в файл .txt.Я получаю исключение AccessViolation, когда я использую

string filePath = @"d:\errors.txt";
errorFileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
errorFileHandle = errorFileStream.SafeFileHandle.DangerousGetHandle();
H5E.print(estack_id, errorFileHandle)

Как избавиться от этого исключения?Я иду правильно?

Я использую HDF.PInvoke версии 1.10.0.4 в C # в Visual Studio 2015.

...