То, что вы описываете, на самом деле ТРИ (3 )указателя на данные на диске:
Если вы mv A
переходите на новую файловую систему, по существу создается копия данных в новой файловой системе.
Если вы mv B
переходите на новую файловую систему, создается еще одна копия данных с именем B
в новой файловой системе. Но ABC по-прежнему остается в исходной файловой системе.
Что делать?если вы хотите реплицировать исходный файл и ссылки в новой файловой системе (, замените source/ и новый -файл -system/ на ваши правильные пути):
cp source/ABC new-file-system/ABC
ln new-file-system/ABC A
ln new-file-system/ABC B
rm source/ABC source/A source/B
При этом будут скопированы/созданы данные в новой файловой системе, созданы жесткие -ссылки A и B в новой файловой системе, а затем удалены старые данные и жесткие -ссылки.
Перед выполнением команды обязательно проверьте синтаксис, чтобы не потерять данные.
Функции CRC ядра доступны ядру (, включая модули ), но больше нигде. Поскольку вы ссылаетесь на /usr/include/linux
, я предполагаю, что вы хотите использовать их из программы вне ядра.
Вам доступны два решения:
lib/crc32.c
в свой проект и настроить его в соответствии с требованиями;