Я пытаюсь распечатать журнал ошибок, сгенерированный библиотекой 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.