Как получить реальное имя файла в модуле ядра - PullRequest
0 голосов
/ 03 июля 2019

Я создаю модуль ядра, который перехватывает команду unlink и создает копию файла, который нужно отсоединить.Сейчас я перехватываю команду unlink и пытаюсь напечатать путь к файлу, но он не работает правильно.

У меня есть метод, который получает параметр пути char *, и я использую printk для показа пути,но это печатает некоторые редкие строки, такие как "\ xe07l \ xd3 \ xf"

asmlinkage int hacked_sys_unlink(const char *pathname)
{
    printk("RM_CATCHED: unlink( \"%s\" )\n", pathname);
    return original_sys_unlink(pathname);
}

, когда я отсоединяю какой-то файл и использую команду dmesg, я получаю это:

[ 1531.847856] RM_CATCHED: unlink( "`g\xcfYMV" )
[ 1531.848071] RM_CATCHED: unlink( "\xe07l\xd3\xf" )
[ 1534.851623] RM_CATCHED: unlink( "\xe07l\xd3\xf" )
[ 1534.852091] RM_CATCHED: unlink( "" )
[ 1541.861962] RM_CATCHED: unlink( "" )

как я могу получитьреальный путь к файлу, например /path/to/file.txt?

...