我实际上是Linux内核模式编程的新手。 我必须从用户模式程序test.c获得输入, 并将其写入我的驱动程序内核mydrv.c
我所做的是得到scanf的字符串输入,并将其写为 write(file,out,MAX_SIZE);
文件是设备,输出是输入字符串。 在mydrv_write中,我尝试通过strlen获取输入的字符串长度, 但是只要我尝试实现它,过程就会终止 我包括在程序的前面。
我猜输入字符串没有正确进入内核。 那么如何在内核中获取字符串长度呢?
答案 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
函数都没有问题。