如何在kernel下启动程序
我想在内核代码中启动一个应用程序。该如何实现?我看到在文件 drivers/sbus/char/envctrl.c中有如下代码:
#define __KERNEL_SYSCALLS__
static int errno;
#include <asm/unistd.
...
printk(KERN_CRIT "kenvctrld: WARNING: Shutting down the system now.\n");
if (0 > execve("/sbin/shutdown", argv, envp)) {
printk(KERN_CRIT "kenvctrld: WARNING: system shutdown failed!\n");
inprog = 0;/* unlikely to succeed, but we could try again */
}
可是这好像是在当前的进程中执行"shutdown"程序。
我希望能够在一个新的进程中执行所需要的程序,该如何实现?
多谢! 有几个函数可以执行程序,他们有一个系列exec() 之类的,你可以GOOGLE一下这些函数。
这里有LINUX下常用C函数的用法http://net.pku.edu.cn/~yhf/linux_c/index.htm
另外,你最好还去看一下fork()函数的用法。这里有个好帖子http://www.chinaunix.net/jh/23/311067.html :wink: 这个帖子的推荐了好多次了.....
页:
[1]