我在執行保險絲中的readdir()功能時看到一個奇怪的問題。基本上,當我在保險絲任何目錄下執行 'ls' 的,我得到一個錯誤,如:保險絲readdir返回輸入/輸出錯誤
LS
LS:閱讀目錄:輸入/輸出錯誤
在file1.c file2.c中
但奇怪的是,readdir正在做它應該做的事情。在這個特定的目錄中,我有兩個名爲'file1.c'和'file2.c'的文件,它能夠正確讀取它。
在調試問題時,我注意到導火索'fuse'函數('fuse_fill_dir_t'作爲參數傳遞給readdir())可能導致此錯誤。
這是因爲如果我只使用debug printf打印目錄的內容而不使用填充函數返回內容,則看不到錯誤。
但是,只要我開始使用填充函數返回內容,我開始看到這個錯誤。
我有兩個與此相關的問題:
1)任何人有任何想法,爲什麼填充功能可能會導致這個問題?
2)如何查找fuse_fill_dir_t函數的代碼定義?我已經通過大多數的導火索功能來研究這種論點,但到現在爲止還沒有運氣。
任何幫助表示讚賞!
乾杯, 維奈
我在OS X中有同樣的問題。 –