Предположим, у меня есть программа, работающая с бинарными файлами на языке Си.
Предположим, у меня есть 8 объектов (каждый объект представляет собой тип записи структуры) в этом двоичном файле, и я прочитал первые 3 объекта из 8. (Читая 3 объекта из 8, я имею в виду, что я прочитал его и сохранил их в множество)
Я знаю, что для последующего чтения содержимого двоичного файла мне нужно использовать вызов fseek для достижения этой цели. Что меня смущает, так это то, что, предположим, я хочу прочитать 4-й объект из 8, сколько байтов/объектов я должен переместить/пропустить с помощью вызова fseek?
Я должен звонить
fseek(fp, sizeof(struct record) * 3, SEEK_SET);
or
fseek(fp, sizeof(struct record) * 4, SEEK_SET);
sizeof(struct record, SEEK_SET)
. - person Yunnosch   schedule 18.03.2019fseek(fp, sizeof(struct record), SEEK_SET * 3)
- person DigitalSoul   schedule 18.03.20190
. Чтобы получить второе, вы стремитесь к позицииsizeof(struct record)
. Теперь, как бы вы искали третью запись? - person Some programmer dude   schedule 18.03.2019SEEK_SET
на что угодно явно совершенно неправильно, так что другое, вероятно, более верно. - person Antti Haapala   schedule 18.03.20191*N
предназначена для людей, которые уже думают C-ish. - person Yunnosch   schedule 18.03.20190,1,2,
против1,2,3,
? В таком случае хорошее редактирование, и меня просто смущает история правок. - person Yunnosch   schedule 18.03.2019sizeof(struct record) * 0
, позиция второго смещенияsizeof(struct record) * 1
и т. д. В чем проблема? - person Jabberwocky   schedule 18.03.2019