gpt4 book ai didi

c - TiffLib 泄漏句柄到无效文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:37 24 4
gpt4 key购买 nike

如果我尝试使用 TIFFOpen() 打开无效的 TIFF 文件, 函数返回 NULL .由于某种原因,未调用错误处理程序。但是,该文件保持打开状态,因此我无法从同一进程中删除/覆盖它。

我尝试使用 TIFFFdOpen() ,这样我就可以自己关闭句柄,但出于某种原因,它在有效的 TIFF 上给了我这个错误:“无法读取 TIFF header ”。这次错误通过错误处理程序传递。

我怎样才能解决这些问题?

更新:我说的是 TIFFOpen() 中的问题本身,而不是在稍后调用的函数中。例如,如果 TIFF 文件的大小为零,它们可能会发生。

最佳答案

也许您有一个旧的或损坏的 libtiff?我尝试使用 libtiff-3.8.2,它似乎工作正常:

$ head -c 1000000 sample.tif > broken.tif
$ tiffinfo broken.tif
TIFFReadDirectory: broken.tif: Can not read TIFF directory count.
$ strace tiffinfo broken.tif
...
open("broken.tif", O_RDONLY) = 3
...
write(2, "broken.tif: Can not read TIFF dir"...
...
close(3) = 0
exit_group(0) = ?

即。有一个合理的错误并且没有泄漏(在退出之前明确关闭)。我用自己的代码得到了相同的行为。

关于c - TiffLib 泄漏句柄到无效文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com