maarek
چهارشنبه 19 مهر 1396, 02:00 صبح
سلام،
من قصد دارم تا بایت های یک فایل که تو حافظه مپ کردم بخونم.. یک کتابخونه پایتون پیدا کردم که همین کار و میکنه داخل کد هاش برای خواندن بایت ها از دستور زیر استفاده میکنه:
magic = struct.unpack('<L', m[0:8])[0]
خروجی میشه 1377629629
اما وقتی کد به این صورت زیر تغییر میدم نتیجه عوض میشه و نتیجه دقیقا برابر با عبارتی است که ابزار hex editor من نشون میده
magic = m[0:8]
خروجی میشه bdf51c52
چرا از struct.unpack استفاده میکنه؟ یعنی چه نیازی هست که استفاده بشه؟
من قصد دارم تا بایت های یک فایل که تو حافظه مپ کردم بخونم.. یک کتابخونه پایتون پیدا کردم که همین کار و میکنه داخل کد هاش برای خواندن بایت ها از دستور زیر استفاده میکنه:
magic = struct.unpack('<L', m[0:8])[0]
خروجی میشه 1377629629
اما وقتی کد به این صورت زیر تغییر میدم نتیجه عوض میشه و نتیجه دقیقا برابر با عبارتی است که ابزار hex editor من نشون میده
magic = m[0:8]
خروجی میشه bdf51c52
چرا از struct.unpack استفاده میکنه؟ یعنی چه نیازی هست که استفاده بشه؟