Я должен сделать синтаксический анализ на данных, записанных в мой модуль и использование strtok (), функция string.h была бы полезна. Однако я попробовал
#include <string.h>
и
#include <linux/string.h>
без успеха. Действительно ли это возможно? Или я должен буду записать свою собственную функцию strtok?
Спасибо
В действующем API ядра Linux нет strtok
. Вам придется написать свой собственный. См. Раздел Управление строкой в API ядра Linux.
Кстати, я бы посоветовал держаться подальше от strtok
(или чего-то подобного strtok
). Он не реентерабелен и небезопасен в коде ядра (который по своей природе многопоточный).
Если вы собираетесь дублировать функцию, подумайте о дублировании strtok_r
.
В последней библиотеке ядра есть это, которое может делать то, что вам нужно:
/**
* strsep - Split a string into tokens
* @s: The string to be searched
* @ct: The characters to search for
*
* strsep() updates @s to point after the token, ready for the next call.
*
* It returns empty tokens, too, behaving exactly like the libc function
* of that name. In fact, it was stolen from glibc2 and de-fancy-fied.
* Same semantics, slimmer shape. ;)
*/