PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 連續讀檔(fopen)無法fclose
作者:
jiqian
(JIM)
2015-03-26 18:14:56
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenCV
問題(Question):
我想要做出判斷一個資料夾裡面有多少張ABC%d.bmp的圖
然後再拿最後一張圖來做辨識
因此我想到的方法是用while配合fopen來rb找到最後一張
再用opencv來imread
但是目前情況是
1.辨識到第43張圖時就會發生test和train檔案大小不符
(應該是開到ABC%d+1.bmp空檔去了)
2.只要我在程式後面加上fclose,進行辨識時就會發生
Caught SIGSEGV accessing address (nil)
Spinning. Please run 'gdb gst-launch 1321' to continue debugging, Ctrl-C to
quit, or Ctrl-\ to dump core.
困擾蠻久的,一直沒辦法找到好的方法解決,
麻煩大家幫忙看看了!謝謝!
程式碼(SourceCode):
int count = 0;
char iconpath[200];
FILE *fp;
sprintf(iconpath,"/var/ABC%d.bmp",count);
fp=fopen(iconpath,"rb");
while(fp){
count++;
sprintf(iconpath,"/var/ABC%d.bmp",count);
fp=fopen(iconpath,"rb");
}
sprintf(iconpath,"/var/ABC%d.bmp",count-1);
Mat img = imread(iconpath, CV_LOAD_IMAGE_GRAYSCALE);
memset(iconpath,0x00,200);
int predicted_label = -1;
double predicted_confidence = 0.0;
model->predict(img, predicted_label, predicted_confidence);
*label=predicted_label;
*conf=predicted_confidence;
fclose(fp);
作者:
LPH66
(-6.2598534e+18f)
2015-03-26 18:42:00
while() 裡面新開一個檔時先把舊的關掉另外你思考一下 while 出去的時候 fp 到底是什麼東西這直接關係到你最後的 segfault再來, 要檢查檔案是否存在其實不只有開開看一個方法
作者:
noodleT
(麵T)
2015-03-27 19:52:00
不考慮用 ls 列出檔案?
作者:
Dong0129
(阿東跟上面講的情況一樣b)
2015-03-29 17:03:00
python可以直接用os.system()叫出系統指令並執行c好像有python的lib可以用,可以試試喔
作者:
dirkc
(3781615)
2015-03-29 18:01:00
linux上opendir這裡有個簡例:
" target="_blank" rel="nofollow">
讀shell結果我這裡有個簡例:
http://codepad.org/GlW5bmNm
exec("find . -maxdepth 1 -type f -iname \'*.bmp\'-printf \'%f\\n\'") 兩行貼起來不用std::string的話自己調整囉
作者:
sunneo
(艾斯寇德)
2015-03-31 00:55:00
你while(fp) 所以當然跳出迴圈的時候fp是nil啊可以用opendir, readdir跟access
繼續閱讀
[問題] 打程式的速度
Bruce003
[問題] 如何利用C程式從網頁複製文字或表格?
Bruce003
[問題] 結構包二維結構資料傳遞方式
akiramaru
[問題] 新手練習for-loop
healthlin
[問題] 結構包結構的資料傳遞方式
akiramaru
[問題] 請問RS232如何判斷有無連線?
wu110011
[問題] 開發中的應用程式架構
moumou219
[問題] 想請問藍芽socket傳輸資料被截掉的問題
kiwi90310
[問題] 請問該如何寫成副程式
syxuan
[問題] 關於全形符號QQ
qq820901
Links
booklink
Contact Us: admin [ a t ] ucptt.com