我使用的是嵌入式JavaScript引擎,我曾經將fopen()
的結果作爲數字傳遞給JS代碼。如何將FILE *轉換爲64位系統中的數字句柄?
int numeric_handle = (int)fopen(*P1, "rb");
return Number::New(numeric_handle); // Return to JavaScript
但現在我需要在64位系統上重新編譯,我也得到
fatal error: cast from pointer to smaller type 'int' loses information
現在我有點卡住了,我怎麼把我的系統的設計,但變化少代碼可能?我正在考慮有一個散列圖,一個保存FILE *的數組,並在該數組中返回一個ID。但是這意味着額外的內存管理,額外的查找。
是'::'純C語法嗎?我只是知道它的含義,從C++ – dhein
這是C++,但我堅持老好fopen(),fread()文件IO – exebook
在Linux上,你可以使用'fileno'。 Visual Studio有類似的'_fileno'。 – Simple