linuxÏß³Ì
ËùÓÐÏ̶߳¼ÓÐÒ»¸öÏ̺߳ţ¬Ò²¾ÍÊÇ
Thread ID
¡£ÆäÀàÐÍΪ
pthread_t
¡£Í¨¹ýµ÷ÓÃ
pthread_self()
º¯Êý¿ÉÒÔ»ñµÃ×ÔÉíµÄÏ̺߳š£
ÏÂÃæËµÒ»ÏÂÈçºÎ´´½¨Ò»¸öÏ̡߳£
ͨ¹ý´´½¨Ị̈߳¬Ï߳̽«»áÖ´ÐÐÒ»¸öÏ̺߳¯Êý£¬¸ÃÏ̸߳ñʽ±ØÐë°´ÕÕÏÂÃæÀ´ÉùÃ÷£º
void * Thread_Function(void *)
´´½¨Ï̵߳ĺ¯ÊýÈçÏ£º
int pthread_create(pthread_t *restrict thread,
const pthread_attr_t *restrict attr,
void *(*start_routine)(void*), void *restrict arg);
ÏÂÃæËµÃ÷һϸ÷¸ö²ÎÊýµÄº¬Ò壺
thread
£ºËù´´½¨µÄÏ̺߳š£
attr
£ºËù´´½¨µÄÏß³ÌÊôÐÔ£¬Õâ¸ö½«ÔÚºóÃæÏêϸ˵Ã÷¡£
start_routine
£º¼´½«ÔËÐеÄÏ̺߳¯Êý¡£
art
£º´«µÝ¸øÏ̺߳¯ÊýµÄ²ÎÊý¡£
ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ´´½¨Ïß³ÌÀý×Ó£º
#include <pthread.h>
#include <stdio.h>
/* Prints x’s to stderr. The parameter is unused. Does not return. */
void* print_xs (void* unused)
{
while (1)
fputc (‘x’, stderr);
return NULL;
}
/* The main program. */
int main ()
{
pthread_t thread_id;
/* Create a new thread. The new thread will run the print_xs
function. */
pthread_create (&thread_id, NULL, &print_xs, NULL);
/* Print o’s continuously to stderr. */
while (1)
fputc (‘o’, stderr);
return 0;
}
ÔÚ±àÒëµÄʱºòÐèҪעÒ⣬ÓÉÓÚÏ̴߳´½¨º¯ÊýÔÚ
libpthread.so
¿âÖУ¬ËùÒÔÔÚ±àÒëÃüÁîÖÐÐèÒª½«¸Ã¿âµ¼Èë¡£ÃüÁîÈçÏ£º
gcc –o createthread –lpthread createthread.c
Èç¹ûÏë´«µÝ²ÎÊý¸øÏ̺߳¯Êý£¬¿ÉÒÔͨ¹ýÆä²ÎÊý
arg
£¬ÆäÀàÐÍÊÇ
void *
¡£Èç¹ûÄãÐèÒª´«µÝ¶à¸ö²ÎÊýµÄ»°£¬¿ÉÒÔ¿¼Âǽ«ÕâЩ²ÎÊý×é³ÉÒ»¸ö½á¹¹ÌåÀ´´«µÝ¡£ÁíÍ⣬ÓÉÓÚÀàÐÍÊÇ
void *
£¬ËùÒÔÄãµÄ²ÎÊý²»¿ÉÒÔ±»ÌáǰÊͷŵô¡£
ÏÂÃæÒ»¸öÎÊÌâºÍÇ°Ãæ´´½¨½ø³ÌÀàËÆ£¬²»¹ý´øÀ´µÄÎÊÌâ»Ø±Ü½ø³ÌÒªÑÏÖØµÃ¶à¡£Èç¹ûÄãµÄÖ÷Ị̈߳¬Ò²¾ÍÊÇ
main
º¯ÊýÖ´ÐеÄÄǸöỊ̈߳¬ÔÚÄãÆäËûÏØ³ÇÍÆ³ö֮ǰ¾ÍÒѾÍ˳ö£¬ÄÇô´øÀ´µÄ
bug
Ôò²»¿É¹ÀÁ¿¡£Í¨¹ý
pthread_join
º¯Êý»áÈÃÖ÷Ïß³Ì×èÈû£¬Ö±µ½ËùÓÐÏß³
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÔÚ±¾ÎÄÖУ¬
Linux
ÊÇÖ¸²Ý¸ù°æµÄ
Linux
£¬Ò²¾ÍÊÇ˵£¬
Linux
ÊÇÕý×ÚµÄ
GNU/Linux
¡£ÏÖÔÚµÄÎÊÌâÊÇ£¬ÔÚÖйú£¬ÎªÊ²Ã´
GNU/Linux
ÒªÔ¶ÀëÓ²ÅÌ£¿ÕâÊÇʲôÔÒòÔì³ÉµÄ£¿
......
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
/*
* author ÕÅÎÄ
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h> ......