|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Все работало прекрасно, пока однажды не ребутнули linux, который видимо загрузился с новым ядром и некоторые скомпилированные файлы стали работать странно. Решил просто пересобрать глючные и тут выяснилось, что fopen с опцией "r" ("rt" ничего не меняет) + fread читают вроде как надо - бинарно, но оказывается раньше они читали по иному (как текст что ли). Суть - есть некая утилита под виндой кодирующая файл. Алгоритм и "пароль" дешифровки известен, декодирую под Дебианом, но почему то считывание одного и того же файла происходит по разному (коды символов ЧАСТИЧНО в считанной строке получаю разные) - под виндой строка, под линуксом чистые бинарные символы. Как правильно читать в "линуксах", чтобы получить аналогичное преобразование? Не соображу никак... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 13:47 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Работать не с символами, а с байтами. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 13:52 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да это понятно, виндовая утилита уже так сделана, мне нужно под нее подстроиться вот пример как читает "на винде" авторiDm9>' как на самом деле выглядит бинарник авторiDm ! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 13:57 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin Dimitry Sibiryakov, да это понятно, виндовая утилита уже так сделана, мне нужно под нее подстроиться вот пример как читает "на винде" авторiDm9>' как на самом деле выглядит бинарник авторiDm !& ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 13:58 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
т.е. вопрос как получить такую же как первая строка? например, должен быть символ в DEC 57, но по факту там бинарный DEC 32 где происходит преобразование не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 13:59 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Для понимания увлекательный процесс существует. "Отладка" зовётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 14:19 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, хорошо бы конечно отдалить, но от чужой утилиты у меня только кусок кода на дельфи, где происходит просто TFileStream.Read и там уже строка ДРУГАЯ, нежели в бинарнике наверное преобразование типов где то происходит, но где... и почему раньше работало, а после обновления этих линуксов перестало... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 14:25 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverinи там уже строка ДРУГАЯ Перестань выводить её как строку, выводи как массив байт в шестнадцатеричном виде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 14:29 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, мне дали этот кусок от дельфи, чтобы я на gcc декодировку сделал, так что я не могу не выводить строкой, так сделано там, т.е. от TFileStream.Read мне некуда бежать, а почему он получает другую строку, не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 14:32 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
TFileStream.Read читает двоичный буфер, не надо бредить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 14:40 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin Все работало прекрасно, пока однажды не ребутнули linux, который видимо загрузился с новым ядром и некоторые скомпилированные файлы стали работать странно. Я думаю это практически нереально, если это не Астра Линукс. За такие фортели Торвальдс приступил бы к увольнениям всех причастных (даже косвенно причастных). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 15:20 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
petrav, может и не реально, однако просто пересобранный стал больше где то на 3% интереса ради скопировал на другой сервер - проблема та же ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:18 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin, https://en.cppreference.com/w/c/io/fopen File access mode flag "b" can optionally be specified to open a file in binary mode. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:26 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov TFileStream.Read читает двоичный буфер, не надо бредить. что то не получает он у меня двоичный, сделал просто Код: pascal 1. 2. 3.
и вуаля - часть символов в Buf отличается от бинарника ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:37 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Siemargl, флаг 'b' в POSIX (в т.ч. glibc) не имеет никакого эффекта и игнорируется ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:48 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Siemargl, да это все понятно, не понятно почему вдруг после ребута дебиана работать перестало, опцию b я до этого не использовал, но и с ней ничего не меняется, т.е. раньше он должен был читать как текстовый файл по идеи, но разницы в fopen нет с каких ключом открыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:48 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
может дело в кодировке!? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 16:51 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin может дело в кодировке!? Buf: string; - юникодный же небось ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:05 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverinи вуаля - часть символов в Buf отличается от бинарника Повторяю медленно, специально для дельфинов: символы это не байты, смотреть надо на байты, байты нельзя складывать в string, на символы в строке смотреть бесполезно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:16 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin может дело в кодировке!? Возможно у него раньше были сайд-эффекты на кодировке 1251. После обновления - utf8. Почему раньше работало в комллексе - ХЗ. Возможно одиаковое (неправильное) поведения под Windows/Delphi и Debian компенсировали друг друга и никто ничего не замечал. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:36 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Siemargl, гугл говорит в дельфи 7 ansi 1 байт, поэтому вроде как читаю в gcc как unsigned char ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:42 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
mayton, может вы и правы, а что за обновление utf8 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:43 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да hex то понятно везде одинаковый, мне то надо чтобы в сях получался такой же результат как в дельфах, не важно верный он там или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:44 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverinмне то надо чтобы в сях получался такой же результат как в дельфах, не важно верный он там или нет Отлаживайся. Смотри чтобы на каждом шагу алгоритма байты в буфере получались одинаковые. БАЙТЫ, а не буквы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:51 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin mayton, может вы и правы, а что за обновление utf8 ? Я не знаю. Моё предположение что у тебя в стеке технологий не только fopen/fread а еще и работа с STDIN/STDOUT, а они могут зависеть от локали. Посмотри что у тебя сейчас выдает в линуксе. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:56 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
mayton, ru_RU.UTF-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:58 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
А теперь было-бы как-то хорошо свичнутся на старое ядро и посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:59 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Хорошо, байты Byte в дельфе = unsigned char??? добавляю переменные в вотч в дельфе и вывод printf("%u", p*) где unsigned char * p местами совпадают, местами РАЗНЫЕ как правильно сравнить??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:26 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverinместами совпадают, местами РАЗНЫЕ Вот тут и надо смотреть в какой момент они становятся "РАЗНЫЕ". Может, они из разных файлов читаются... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:46 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov wolverinместами совпадают, местами РАЗНЫЕ Вот тут и надо смотреть в какой момент они становятся "РАЗНЫЕ". Может, они из разных файлов читаются... разные они сразу как только в дельфе Код: pascal 1.
где правда p указатель на структуру, но это роли не играет, одни Byte одинаковые, одни разные относительно unsigned char потому что код символа выходит, а они местами разные у этих типов файлы одинаковые - я подменяю старую версию и новую - одна глючно (по крайней мере кодированный файл читает верно) но работает, вторая новая вообще не работает. как еще сравнить кроме hex, который мне вообще не нужен (потому что он не используется в утилите чужой для шифрования), я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:54 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverinгде правда p указатель на структуру, но это роли не играет То есть о выравнивании элементов структуры ты даже не слышал никогда... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:57 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, структуры одинаковые по длине и порядку элементов, тут я ничего не менял когда работало завтра сравню по hex побайтно, что считалось в дельфе, но что то мне подсказывает что там будет тоже самое, а отличие будет у Byte и unsigned char спасибо за сочувствие ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 19:09 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
wolverin Dimitry Sibiryakov TFileStream.Read читает двоичный буфер, не надо бредить. что то не получает он у меня двоичный, сделал просто Код: pascal 1. 2. 3.
и вуаля - часть символов в Buf отличается от бинарника наверное нельзя засовывать в string, но именно эта строка по Byte и выходит, даже если TFileStream.Read(p, 80), где p указатель на структуру и ее размер 80 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 19:19 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
коли это C++, то почему fopen, почему не это: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 23:42 |
|
fopen - fread текстового файла
|
|||
---|---|---|---|
#18+
вопщим бесконечно переписывая вдруг переставший работать участок кода в разных вариантах - он начал работать, но стало выпадать в другом месте Ошибка сегментирования и тут до меня начинает доходить, где то же я с подобным сталкивался - когда все работало, но что то дописав совершенно в другом месте или просто почему то выросший размер исполняемого файла начал глючить совершенно в другом месте алгоритма - это же ошибка работы с памятью где то... выход за границы или обращение не к тем участкам памяти словом и ядро в общем случае не причем, тот же самый кривой код, но другого размера исполняемый файл (мне почему то попадается только при его росте) начинает лежать в памяти по другому и ошибка работы с указателями выстреливает. зы. изначально странное поведение оказалось тем, что я на SQL сервере изменил алгоритм хранимой процедуры, это выяснилось как только я смог дойти с отладкой до этого участка ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 07:13 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017195]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 146ms |
0 / 0 |