Ядро Linux crc32.h отсутствует в /usr/include/linux

То, что вы описываете, на самом деле ТРИ (3 )указателя на данные на диске:

  • Азбука
  • А
  • Б

Если вы mv Aпереходите на новую файловую систему, по существу создается копия данных в новой файловой системе.

Если вы mv Bпереходите на новую файловую систему, создается еще одна копия данных с именем Bв новой файловой системе. Но ABC по-прежнему остается в исходной файловой системе.

Что делать?если вы хотите реплицировать исходный файл и ссылки в новой файловой системе (, замените source/ и новый -файл -system/ на ваши правильные пути):

  1. cp source/ABC new-file-system/ABC
  2. ln new-file-system/ABC A
  3. ln new-file-system/ABC B
  4. rm source/ABC source/A source/B

При этом будут скопированы/созданы данные в новой файловой системе, созданы жесткие -ссылки A и B в новой файловой системе, а затем удалены старые данные и жесткие -ссылки.

Перед выполнением команды обязательно проверьте синтаксис, чтобы не потерять данные.

0
29.09.2020, 17:58
1 ответ

Функции CRC ядра доступны ядру (, включая модули ), но больше нигде. Поскольку вы ссылаетесь на /usr/include/linux, я предполагаю, что вы хотите использовать их из программы вне ядра.

Вам доступны два решения:

  • если лицензия вашей программы совместима с лицензией ядра, вы можете скопироватьlib/crc32.cв свой проект и настроить его в соответствии с требованиями;
  • вы можете использовать другую реализацию CRC32 (, предполагая, что она совместима с целью )— zlib имеет такую ​​реализацию с другой лицензией.
1
18.03.2021, 23:01

Теги

Похожие вопросы