[cdev] утилита dd

Grigoriy A. Sitkarev sitkarev на komitex.ru
Сб Май 1 22:16:27 MSK 2010


Федюк Сергей пишет:
> Здраствуйте
> внес изменения в утилиту, чтобы опции if и of не были жёстко привязаны к конкретной позиции
> но возникла проблема
> 

Принцип такой. Если у вас есть адрес чего-то т.е. указатель на "что-то", 
то вы с этим "чем-то" можете делать всё что хотите. Си вам ничего не 
запрещает. Типы тоже можно преобразовывать и указатели, от void * 
который может на любой тип ссылаться к любому другому и т.д. На самом 
деле все указатели, вне зависимости от типа, имеют один и тот же размер 
- 4 байта на 32-х разрядных машинах и 8 байт на 64-х разрядных, и потому 
преобразуются друг в дружку без потерь. Адрес ячейки он и в Африке адрес 
ячейки.

Знаете что это последовательность байт, т.е. массив? Вот и ходите по 
байту вперёд или назад, это как вам угодно. Никаких дополнительных полей 
или чего-то ещё там нет, в массиве. Все базовые типы отражаются в 
машинное представление и именно в таком виде они и будут лежать в памяти.

--
Г.А.





Подробная информация о списке рассылки cdev