Thread unpack (22 answers)
Opened by mark05 at 2011-04-29 13:48

mark05
 2011-05-19 10:05
#148790 #148790
User since
2010-01-05
129 Artikel
BenutzerIn
[default_avatar]
hi

wollte mich dies bezueglich nochmal melden,
im kern habe ich das selber geloest , mein fehler war das ich
Code: (dl )
1
2
3
4
5
6
7
# from recording.c vdr 1.7.18
# uint64_t offset:40; // up to 1TB per file (not using off_t here - must definitely be exactly 64 bit!) 8byte
# int reserved:7; // reserved for future use 1 byte
# int independent:1; // marks frames that can be displayed by themselves (for trick modes) 1 byte
# uint16_t number:16; // up to 64K files per recording 2 byte
# tIndexTs(off_t Offset, bool Independent, uint16_t Number)
# {


immer von links nach rechts interpretiert habe , es jedoch genau
anders rum ist.

sprich
Code: (dl )
my ($byteoffset,undef,$filenumber) = unpack 'lssQ', ${$buffer};


hierdurch resultiert sich noch eine frage .

eigentlich sind es ja 4 werte
Code: (dl )
1
2
3
4
uint64_t offset:40;
int reserved:7;
int independent:1
uint16_t number:16;


die ich ja mit lssQ abdecke .

jedoch kann ich nur 3 variable abgreifen ,
eigenlich muesste es doch .
Code: (dl )
my ($byteoffset,undef,$independet,$filenumber) = unpack 'lssQ', ${$buffer};


heissen , oder mache ich da noch einen denkfehler ?

deweiteren stell ich mir die frage ist Q immer 64 bit auch wenn ich

eine 32 bit perl variante habe ?


holger
Last edited: 2011-05-19 10:07:41 +0200 (CEST)

View full thread unpack