call_usermodehelper函数例子
时间:2010-05-24 来源:@sky
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/netlink.h>
#include <linux/string.h>
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/netfilter.h>
#include <linux/fs.h>
#include <linux/proc_fs.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/list.h>
#include <linux/kmod.h>
#define err(msg) printk(KERN_INFO "%s failed.\n", msg)
static int __init main_init(void)
{
int err;
char path[256] = "/bin/mkdir";
char *argv[] = { path, "/root/tmp", NULL };
static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
err = call_usermodehelper(path, argv, envp, 1);
if (err < 0) {
err("call_usermodehelper");
goto out;
}
return 0;
out:
return -1;
}
static void __exit main_exit(void)
{
}
module_init(main_init);
module_exit(main_exit);
MODULE_LICENSE("GPL");
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/netlink.h>
#include <linux/string.h>
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/netfilter.h>
#include <linux/fs.h>
#include <linux/proc_fs.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/list.h>
#include <linux/kmod.h>
#define err(msg) printk(KERN_INFO "%s failed.\n", msg)
static int __init main_init(void)
{
int err;
char path[256] = "/bin/mkdir";
char *argv[] = { path, "/root/tmp", NULL };
static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
err = call_usermodehelper(path, argv, envp, 1);
if (err < 0) {
err("call_usermodehelper");
goto out;
}
return 0;
out:
return -1;
}
static void __exit main_exit(void)
{
}
module_init(main_init);
module_exit(main_exit);
MODULE_LICENSE("GPL");
相关阅读 更多 +