Я только что закончил писать большой код на c, но когда я сохраняю и открываю снова, файл содержит странные символы: "@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ @^@^@^@^@0000664^@0001750^@0001750^@0000000031"
Как я могу восстановить файл?
Я пишу эту программу весь день. : ((
gcc bla.c -o bla.c
?file big.c
- что это говорит? К сожалению, не очень подходит для восстановления.Ответы:
Это может быть длинный выстрел, но это выглядит подозрительно как часть заголовка файла TAR. Возможно, вы когда-то пытались сделать резервную копию с помощью tar и использовали то же имя файла, что и выходной файл? Я подозреваю, что причина в том, что заголовок файла TAR начинается с:
Итак, глядя на этот фрагмент, он соответствует шаблону - файл был rw-rw-r, с идентификатором владельца / группы 1000 и размером от 200 до 207 байт (похоже, что это поле вырезано в вашем cut-n- вставить). Выдача - если в файле есть «ustar», начинающийся с символа 257. В этом случае просто используйте команду tar, чтобы попытаться извлечь из нее (во временном каталоге на всякий случай), надеюсь, вы получите что-то из Это.
источник
file source.c
увидеть, распознает ли он его как файл tar. Вы могли бы сделатьtar -tvf source.c
не разрушительноПеред выходом из Vim введите
попытаться загрузить файл. Это на тот случай, если вы просто попытались отредактировать неправильный файл.
В другой оболочке найдите файл your_filename.recover или file_name.swp. Если найден, то начинается
должен вернуть ваш файл.
источник
Несколько раз я сталкивался с этим персонажем в файлах журналов. Многие люди называют их «дырой» в файле, где существует некоторое несоответствие между фактическим объемом данных в файле и его указанным размером. Как я узнал из своего очень небольшого исследования по этому вопросу, это происходит из-за проблемы с синхронизацией, когда над файлом одновременно выполняется более одной операции или когда в момент записи файла встречается некоторый перерыв в пространстве на диске. отослать это и это
Подводя итог, можно сказать, что в этих частях файла ничего нет, и эти дырки по-разному отображаются разными текстовыми редакторами.
Мне действительно очень жаль вас, потому что я знаю, как больно терять что-то, на что вы потратили целый день (наряду с вашими любимыми усилиями, вашей страстью и энергией), но шансы очень кроткие, что вы сможете их восстановить . :(
источник
Ты сделал что-то, что убрало твою карету? Я вижу это, когда записываю кучу выходных данных в файл и не добавляю возврат каретки. Линия слишком длинная.
источник
^ @ - это двоичный ноль, низкие значения, '\ 0', 0x00. Лучше всего предположить, что у вас есть строка с нулевым разделителем, и вы пишете длину
char
массива, а не используетеstrlen
.источник