如何在Linux内核模式下获取字符串和字符串长度?

时间:2019-05-25 07:49:53

标签: c linux kernel

我实际上是Linux内核模式编程的新手。 我必须从用户模式程序test.c获得输入, 并将其写入我的驱动程序内核mydrv.c

我所做的是得到scanf的字符串输入,并将其写为 write(file,out,MAX_SIZE);

文件是设备,输出是输入字符串。 在mydrv_write中,我尝试通过strlen获取输入的字符串长度, 但是只要我尝试实现它,过程就会终止 我包括在程序的前面。

我猜输入字符串没有正确进入内核。 那么如何在内核中获取字符串长度呢?

1 个答案:

答案 0 :(得分:0)

您尝试过这样的事情吗?

#define strLength(x) (sizeof(x) / sizeof((x)[0]))

但是此marco给您整个字符串数组的大小。现在我看一些linux源代码。 linux-4.19.3/drivers/bluetooth/btmrvl_sdio.c:1471

fw_dump_ptr += strlen("========Start dump ");

我认为在程序中使用strlen或任何string.h函数都没有问题。