{
printf("%2d:%2d:%2d\n",n/3600,(n%3600)/60,n%60) //这里必须要有\n,不然,因为缓存的问题,系统默认输出是行缓存输出,在没有遇到回车换行时,缓存没有满时,数据会一直不能输出,加了回车,就可以输出了。
这段代码是Linux的一个内核模块程序,timer_list也是Linux内核中的数据结构。模块程序不是以main函数作为入口的。而是以module_init指定。module_init/module_exit分别用于指定模块的加载和卸载函数。
加载模块(insmod)时,会调用mytimer_init函数。这个函数设置一个定时器,在定时器超时时执行myfunc函数,指定函数参数为“Hello,world!”。
myfunc执行时,会输出“Hello,world!”,mod_timer函数会将定时器重新计时,两秒后到期。
因此整个代码执行起来后的现象就是每两秒输出一次Hello,world!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)