我可以在不修改LibTIFF源代码的情况下重定向LibTIFF的错误输出吗?

时间:2011-07-11 21:31:08

标签: libtiff

默认情况下,LibTIFF将所有错误输出写入stderr。这似乎是硬编码的。有没有办法将其重定向到字符串消息处理程序或文件?理想情况下,不需要修改LibTIFF本身,但如果修改不是太大,我可以修改。

澄清#1

我需要以编程方式执行此操作,因为我在另一个库中使用LibTIFF,并且不允许此库向stderr写入任何内容(否则它将弄乱使用我的库的应用程序)。我的库将所有错误记录到文件中 - 我也希望将LibTIFF错误重定向到此文件。

我无法控制使用我的库的应用程序。

澄清#2

我的库是用C ++编写的,可以在Windows上运行。

如果需要修改LibTIFF,欢迎提出建议和意见。

3 个答案:

答案 0 :(得分:1)

您可能应该尝试在libtiff中使用TIFFSetErrorHandler函数。

使用此功能,用户可以更改库处理错误的方式。不需要修改libtiff代码就可以将错误输出重定向到stderr以外的其他内容。

http://www.unix.com/man-page/OpenSolaris/3tiff/TIFFSetErrorHandler/

答案 1 :(得分:0)

将以下内容添加到libtiff命令的末尾:

 2>filename.txt

其中filename.txt是要将输出保存到的文件的名称。但是,此语法可能与平台有关;至少,这种语法应该适用于Linux和Windows。

答案 2 :(得分:0)