У меня есть этот код, читаемый из файла bin. данные хранятся в массиве структур и нулем Моя цель состоит в том, чтобы читать данные, записанные в с-кодом с write (filehandle, (char *)arrayOfCELLs, sizeof(arrayOfCELLs);
в файл, в ту же структуры arrayOfCELLs с помощью D.Dlang string to char * conversion
Моя проблема заключается в том, что в с я прочитал файл в STRUCT обр [] с помощью гипсе, чтобы (символ *)
read(filehandle, (char *)arrayOfStructs, sizeof(arrayOfStructs)
в DI узнал через rcorre, что привело меня к rawRead
auto buffer = FileHandle.rawRead(arrayOfStructs)
где буфер получает данные в sizeof arrayOfStructs.
Однако здесь возникает моя проблема: кажется, что буфер получает необработанные данные, включая 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» с последующим прекращением нуль- , then 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,
И это все неправильно, должно быть «тест» и 2,1, Если я кошку в терминале я получаю
anders$ cat cellspec
TESTfeedOx
atestTailingNx
aOF2 cycl primO?
Вопрос, какие-либо идеи, почему это и что может Я делаю, чтобы все исправить?
вы можете разместить где-нибудь ваш cellspec, или ваш C и D код – Kozzi11
Hope это скачать ссылка работает, его для cellspec https://1drv.ms/u/s!AmN2cOqroYulgpAx8xZrCQEuj6pR9A –
А вот d код HTTPS : //1drv.ms/u/s! AmN2cOqroYulgpAynYqWHK_zAJ011g –