[英]TIFFOpen: Too many open files
我正在嘗試從ASTER數據集中打開一個Geotiff,但它給出了我一直無法弄清的錯誤。 這是我的代碼:
#include "stdlib.h"
#include "stdio.h"
#include "tiffio.h"
void read(void);
void main() {
read();
return;
}
void read(void) {
TIFF* file;
file = TIFFOpen("./ASTGTM2_N50E002_dem.tif", "r");
if (file != NULL)
TIFFClose(file);
else
printf( "won't open\n" );
return;
}
我這樣編譯:
gcc parse.c -ltiff -lm;
這是我得到的輸出的一部分:
TIFFOpen: ./ASTGTM2_N50E002_dem.tif: Too many open files.
./ASTGTM2_N50E002_dem.tif: Cannot read TIFF header.
第二條消息重復數百次,然后
won't open
之后顯示數百次。
read()被調用一次,為什么我得到700多個打印件?
我正在運行Debian,我檢查了
lsof | grep ASTGTM2_N50E002_dem.tif
而且沒有人打開此文件。
我在這里也遵循了建議: https : //stackoverflow.com/a/9012019/1877851
我仍然收到相同的錯誤。 這是怎么回事?
您代碼的問題正盯着我們!
您看到您編寫的名為read()
函數嗎? 是的,那不好。 它以相同的名稱(盡管參數不同)與標准庫的功能沖突。 因此,它最終被libtiff調用-而不是從文件中獲取數據,而是遞歸地打開,直到程序無法再打開文件為止,因此libtiff停止嘗試讀取。
重命名您的函數,一切都會很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.