当前位置: 技术问答>linux和unix
【求助】快来人呐~!大家帮我看看我写的破代码哈!
来源: 互联网 发布时间:2016-10-19
本文导语: #include #include #include #include MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("haha"); static struct task_struct * _task; static int thread_func (void *data) { while(1) { printk ("hahahahaha!n"); udelay(1000); } } static int __init hello_init(v...
#include
#include
#include
#include
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("haha");
static struct task_struct * _task;
static int thread_func (void *data)
{
while(1)
{
printk ("hahahahaha!n");
udelay(1000);
}
}
static int __init hello_init(void)
{
printk ("hahahahaha!n");
_task = kthread_run(thread_func, NULL, "thread_func2");
return 0;
}
static void __exit hello_exit(void)
{
printk ("hohohohon");
}
module_init (hello_init);
module_exit (hello_exit);
连抄带该算是编译通过了。
问题:
当我insmod的时候 linux死了。。。
就是没反应了。只能重启。为什么呢?
多谢~
#include
#include
#include
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("haha");
static struct task_struct * _task;
static int thread_func (void *data)
{
while(1)
{
printk ("hahahahaha!n");
udelay(1000);
}
}
static int __init hello_init(void)
{
printk ("hahahahaha!n");
_task = kthread_run(thread_func, NULL, "thread_func2");
return 0;
}
static void __exit hello_exit(void)
{
printk ("hohohohon");
}
module_init (hello_init);
module_exit (hello_exit);
连抄带该算是编译通过了。
问题:
当我insmod的时候 linux死了。。。
就是没反应了。只能重启。为什么呢?
多谢~
|
估计是死在这了
while(1)
{
printk ("hahahahaha!n");
udelay(1000);
}
你改成其他的延时方式吧,比如schedule_time_out(); 好像是这样拼,具体查下内核延时代码。 不要死等的延时,必须主动放弃cpu一段时间。这样就不会假死了。
while(1)
{
printk ("hahahahaha!n");
udelay(1000);
}
你改成其他的延时方式吧,比如schedule_time_out(); 好像是这样拼,具体查下内核延时代码。 不要死等的延时,必须主动放弃cpu一段时间。这样就不会假死了。