52matlab技术网站,matlab教程,matlab安装教程,matlab下载

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 9709|回复: 0

从linux kernel 调用应用层AP

[复制链接]

5

主题

5

帖子

33

积分

版主

Rank: 7Rank: 7Rank: 7

积分
33
发表于 2015-3-20 18:36:23 | 显示全部楼层 |阅读模式
static void argv_cleanup(struct subprocess_info *info)
{
        argv_free(info->argv);
}

char reboot_cmd[128] = "/system/bin/reboot";
int  call_reboot_proc()
{
        int argc;
        char **argv = argv_split(GFP_ATOMIC, reboot_cmd, &argc);
        static char *envp[] = {
                "HOME=/",
                "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/system/bin",
                NULL
        };
        int ret = -ENOMEM;
        struct subprocess_info *info;

        if (argv == NULL) {
                printk(KERN_WARNING "%s failed to allocate memory for \"%s\"\n",
                       __func__, poweroff_cmd);
                goto out;
        }

        info = call_usermodehelper_setup(argv[0], argv, envp, GFP_ATOMIC);
        if (info == NULL) {
                argv_free(argv);
                goto out;
        }

        call_usermodehelper_setfns(info, NULL, argv_cleanup, NULL);

        ret = call_usermodehelper_exec(info, UMH_NO_WAIT);
  out:
        return ret;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|52matlab技术网站 ( 粤ICP备14005920号-5 )

GMT+8, 2024-12-8 01:17 , Processed in 0.072353 second(s), 20 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表