需要在内核的驱动模块代码里面获取网卡是否up状态,了解到在/sys/class/net/目录下可以查询到网卡状态,但是没有记录网卡up状态的文件。
目前想到的办法,就是通过调用ifconfig来获取网卡信息,在内核可以通过call_usermodehelper函数执行命令,但是不知道怎么将执行的输出结果获取回来,目前只会输出到文件,但是这样可能会增加文件系统的压力。有没有办法直接输出到代码里面的Buf?
目前只会将结果输出到文件,怎么输出到buf呢
static int check_eth(void)
{
int ret = -1;
char path[] = "/bin/bash";
char *argv[] = {path, "-c", "ifconfig", ">", "/root/output.txt", NULL};
char *envp[] = {NULL};
printk("call_usermodehelper module isstarting..!\n");
ret = call_usermodehelper(path, argv, envp, UMH_WAIT_PROC);
printk("test_init ret=%d\n", ret);
return 0;
}