Вспомним структуру файла rpm-пакета (Формат файла rpm)  - начальный идентификатор, подпись (сигнатура), заголовок пакета (бинарный хэдер), нагрузка (cpio-архив с файлами пакета).
Наиболее важная информация о rpm-файле находится в хэдере. Она-то в основном и требуется для работы с пакетами. Однако, чтобы установить указатель смещения в позицию начала чтения хэдера, все равно потребуеся прочитать начальный идентификатор и подпись, даже если они не интересуют вашу программу. Для чтения начального идентификатора применяют функцию readLead:
| 
 int readLead(FD_t fd, struct rpmlead *lead);   | 
Функция readLead возвращает 0 в случае успешного считывания начального идентификатора и 1 в случае ошибки. Считанными данными заполняется структура rpmlead:
| 
 struct rpmlead {   | 
Для чтения до конца сигнатуры вызывается rpmReadSignature:
| 
 rpmRC rpmReadSignature(FD_t fd,   | 
Возможные коды возврата показаны ниже:
| 
 Code  | 
| 
 RPMRC_OK  | 
| 
 RPMRC_BADMAGIC  | 
| 
 RPMRC_FAIL  | 
| 
 RPMRC_BADSIZE  | 
| 
 RPMRC_SHORTREAD  | 
После завершения чтения подписи можно считывать содержимое полей хэдера.