我已經從bin文件中讀取此代碼。 數據以結構的數組保持和空終止 我的目標是使用D.Dlang字符串到char *轉換
我的問題是讀取數據,寫入C代碼與 write (filehandle, (char *)arrayOfCELLs, sizeof(arrayOfCELLs);
到一個文件,進入相同的結構arrayOfCELLs在C我文件讀入到一個struct ARR []通過強制轉換爲(字符*)
read(filehandle, (char *)arrayOfStructs, sizeof(arrayOfStructs)
auto buffer = FileHandle.rawRead(arrayOfStructs)
其中緩衝區將數據獲取到sizeof arrayOfStructs。
然而,這纔是我的問題,緩衝似乎對RAWDATA包括nulltermination但所有位於[0]接收陣列,另外,我不明白/知道是什麼數據類型是(CELL []或字符串[]或.....
struct CELL{ char [20] name, int sect, int type ...};
struct CELL [50] arrayOfCELLs;
auto buffer = ..rawRead(arrayOfCELLs)
接收到的數據在緩衝器中爲(它的一部分)這個
[CELL("TEST\0feed\0\0\0\0\0\0\0\0\0\0\0", 1, 1,
第一個是名稱,「TEST」,隨後空終止,那麼sect = 1,ptyp = 1。現在第二個CELL持有這個
CELL("\x01\0\0\0\x02\0\0\0N\0\0\0\x04\0\0\0\x02\0\0\0", 65656, 655375,
這是完全錯誤的。如果我做一個貓的終端,我得到
anders$ cat cellspec
TESTfeedOx
atestTailingNx
aOF2 cycl primO?
問題,任何想法,爲什麼這是什麼就可以了,應該是「試驗」和2,1, 我做對了嗎?
你可以發佈你的地方cellspec,或C和d代碼 – Kozzi11
希望這會下載鏈接的作品,其cellspec https://1drv.ms/u/s!AmN2cOqroYulgpAx8xZrCQEuj6pR9A –
這裏是d代碼HTTPS ://1drv.ms/u/s!AmN2cOqroYulgpAynYqWHK_zAJ011g –