Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¿ªÆôlinux ÄÚºËÏß³Ì

º¯Êý˵Ã÷£º
kthread_create£º´´½¨Ï̡߳£
struct task_struct *kthread_create(int (*threadfn)(void *data),void *data,const char *namefmt, ...);
Ï̴߳´½¨ºó£¬²»»áÂíÉÏÔËÐУ¬¶øÊÇÐèÒª½«kthread_create() ·µ»ØµÄtask_structÖ¸Õë´«¸øwake_up_process()£¬È»ºóͨ¹ý´Ëº¯ÊýÔËÐÐÏ̡߳£
kthread_run £º´´½¨²¢Æô¶¯Ï̵߳ĺ¯Êý£º
struct task_struct *kthread_run(int (*threadfn)(void *data),void *data,const char *namefmt, ...);
kthread_stop£ºÍ¨¹ý·¢ËÍÐźŸøỊ̈߳¬Ê¹Ö®Í˳ö¡£
int kthread_stop(struct task_struct *thread);
Ïß³ÌÒ»µ©Æô¶¯ÆðÀ´ºó£¬»áÒ»Ö±ÔËÐУ¬³ý·Ç¸ÃÏß³ÌÖ÷¶¯µ÷ÓÃdo_exitº¯Êý£¬»òÕ߯äËûµÄ½ø³Ìµ÷ÓÃkthread_stopº¯Êý£¬½áÊøÏ̵߳ÄÔËÐС£
µ«Èç¹ûÏ̺߳¯ÊýÕýÔÚ´¦ÀíÒ»¸ö·Ç³£ÖØÒªµÄÈÎÎñ£¬Ëü²»»á±»Öжϵġ£µ±È»Èç¹ûÏ̺߳¯ÊýÓÀÔ¶²»·µ»Ø²¢ÇÒ²»¼ì²éÐźţ¬Ëü½«ÓÀÔ¶¶¼²»»áÍ£Ö¹¡£
 
´úÂ룺
 #include <linux/kthread.h>
#include <linux/module.h>
#ifndef SLEEP_MILLI_SEC
#define SLEEP_MILLI_SEC(nMilliSec)\
do { \
long timeout = (nMilliSec) * HZ / 1000; \
while(timeout > 0) \
{ \
timeout = schedule_timeout(timeout); \
} \
}while(0);
#endif
static struct task_struct * MyThread = NULL;
static int MyPrintk(void *data)
{
char *mydata = kmalloc(strlen(data)+1,GFP_KERNEL);
memset(mydata,'\0',strlen(data)+1);
strncpy(mydata,data,strlen(data));
while(!kthread_should_stop())
{
SLEEP_MILLI_SEC(1000);
printk("%s\n",mydata);
}
kfree(mydata);
return 0;
}
static int __init init_kthread(void)
{
MyThread = kthread_run(MyPrintk,"hello world","mythread");
return 0;
}
static void __exit exit_kthread(void)
{
if(MyThread)
{
printk("stop MyThread\n");
kthread_stop(MyThread);
}
}
module_init(init_kthread);
module_exit(exit_kthread);
MODULE_AUTHOR("YaoGang");
Õâ¸öÄÚºËÏ̵߳Ä×÷ÓþÍÊÇÿ¸ôÒ»Ãë´òÓ¡Ò»¸ö“hello world”¡£
ÖµµÃÒ»ÌáµÄÊÇkthread_should_stopº¯Êý£¬ÎÒÃÇÐèÒªÔÚ¿ªÆôµÄÏß³ÌÖÐǶÈë¸Ãº¯Êý£¬·ñÔòkthread_stopÊDz»Æð×÷Óõġ£


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

Linuxϵͳ¹ÜÀíʵ¼ù(5)£ºSambaÎļþ¹²ÏíÅäÖÃ

     SambaÊÇÒ»¸öÍøÂç·þÎñÆ÷£¬ÓÃÓÚLinuxºÍWindows¹²ÏíÎļþÖ®Óã»Samba ¼´¿ÉÒÔÓÃÓÚWindowsºÍLinuxÖ®¼äµÄ¹²ÏíÎļþ£¬Ò²Ò»ÑùÓÃÓÚLinuxºÍLinuxÖ®¼äµÄ¹²ÏíÎļþ£»²»¹ý¶ÔÓÚLinuxºÍLinuxÖ®¼ä¹²ÏíÎļþÓиüºÃµÄÍøÂçÎļþϵͳNFS£¨NFSÒ²ÊÇÐèÒª¼ÜÉè·þÎñÆ÷µÄ£©¡£Samba¿ÉÒÔ¶¨Î»ÎªÒ»Ì×¹¦Äܼ«ÎªÇ¿´óµÄÎļþ·þÎñÆ÷Èí¼þ£¬ËùÎ ......

dz̸linuxÄÚºËÖеÄlist.h[2]

Á´±íµÄɾ³ý
83/*
84 * Delete a list entry by making the prev/next entries
85 * point to each other.
86 *
87 * This is only for internal list manipulation where we know
88 * the prev/next entries already!
89 */
90static inline void __list_del(struct list_head * prev, struct list_head * next)
......

LinuxÄÚºËÔ´Âë·ÖÎö

 LinuxÄÚºËÔ´Âë·ÖÎö-Á´±í´úÂë·ÖÎö
·ÖÎöÈË£ºÓàÐñ
·ÖÎöʱ¼ä£º2005Äê11ÔÂ17ÈÕÐÇÆÚËÄ 11:40:10 AM
Óê ζȣº10-11¶È
±àºÅ£º1-4 Àà±ð£º×¼±¸¹¤×÷
Email£ºyuxu9710108@163.com
ʱ´ú±³¾°£º¿ªÊ¼ÔÚwww.linuxforum.net LinuxÄں˼¼ÊõÂÛ̳ÉÏÃæ·¢Ìù£¬ÔÚÍøÓѵİïæÏ£¬
½â¾öÁËһЩÎÊÌâ¡£
°æÈ¨ÉùÃ÷£º°æÈ¨±£Áô¡£±¾ÎÄÓÃ×÷ÆäËûÓà ......

Linux»·¾³ÏÂMySQLÊý¾Ý¿â´óÐ¡Ð´Çø·ÖÎÊÌâ


 
1¡¢LinuxÏÂmysql°²×°ÍêºóÊÇĬÈÏ£ºÇø·Ö±íÃûµÄ´óСд£¬²»Çø·ÖÁÐÃûµÄ´óСд£»
2¡¢ÓÃrootÕʺŵǼºó£¬ÔÚ/etc/my.cnf ÖеÄ[mysqld]ºóÌí¼ÓÌí¼Ólower_case_table_names=1£¬ÖØÆôMYSQL·þÎñ£¬ÕâʱÒÑÉèÖóɹ¦£º²»Çø·Ö±íÃûµÄ´óСд£»
lower_case_table_names²ÎÊýÏê½â£º
lower_case_table_names = 0
ÆäÖÐ 0£ºÇø·Ö´óСд£¬1 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ