Linux»·¾³½ø³Ì¼äͨÐÅ
linuxϽø³Ì¼äͨÐŵļ¸ÖÖÖ÷ÒªÊֶμò½é£º
¹ÜµÀ£¨Pipe£©¼°ÓÐÃû¹ÜµÀ£¨named pipe£©£º¹ÜµÀ¿ÉÓÃÓÚ¾ßÓÐÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£¬ÓÐÃû¹ÜµÀ¿Ë·þÁ˹ܵÀûÓÐÃû×ÖµÄÏÞÖÆ£¬Òò´Ë£¬³ý¾ßÓйܵÀËù¾ßÓеŦÄÜÍ⣬Ëü»¹ÔÊÐíÎÞÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£»
Ðźţ¨Signal£©£ºÐźÅÊDZȽϸ´ÔÓµÄͨÐÅ·½Ê½£¬ÓÃÓÚ֪ͨ½ÓÊܽø³ÌÓÐijÖÖʼþ·¢Éú£¬³ýÁËÓÃÓÚ½ø³Ì¼äͨÐÅÍ⣬½ø³Ì»¹¿ÉÒÔ·¢ËÍÐźŸø½ø³Ì±¾Éí£»linux³ýÁËÖ§³ÖUnixÔçÆÚÐźÅÓïÒ庯ÊýsigalÍ⣬»¹Ö§³ÖÓïÒå·ûºÏPosix.1±ê×¼µÄÐźź¯Êýsigaction£¨Êµ¼ÊÉÏ£¬¸Ãº¯ÊýÊÇ»ùÓÚBSDµÄ£¬BSDΪÁËʵÏÖ¿É¿¿ÐźŻúÖÆ£¬ÓÖÄܹ»Í³Ò»¶ÔÍâ½Ó¿Ú£¬ÓÃsigactionº¯ÊýÖØÐÂʵÏÖÁËsignalº¯Êý£©£»
±¨ÎÄ£¨Message£©¶ÓÁУ¨ÏûÏ¢¶ÓÁУ©£ºÏûÏ¢¶ÓÁÐÊÇÏûÏ¢µÄÁ´½Ó±í£¬°üÀ¨PosixÏûÏ¢¶ÓÁÐsystem VÏûÏ¢¶ÓÁС£ÓÐ×㹻ȨÏ޵Ľø³Ì¿ÉÒÔÏò¶ÓÁÐÖÐÌí¼ÓÏûÏ¢£¬±»¸³Óè¶ÁȨÏ޵Ľø³ÌÔò¿ÉÒÔ¶Á×ß¶ÓÁÐÖеÄÏûÏ¢¡£ÏûÏ¢¶ÓÁп˷þÁËÐźųÐÔØÐÅÏ¢Á¿ÉÙ£¬¹ÜµÀÖ»ÄܳÐÔØÎÞ¸ñʽ×Ö½ÚÁ÷ÒÔ¼°»º³åÇø´óСÊÜÏÞµÈȱµã¡£
¹²ÏíÄڴ棺ʹµÃ¶à¸ö½ø³Ì¿ÉÒÔ·ÃÎÊͬһ¿éÄÚ´æ¿Õ¼ä£¬ÊÇ×î¿ìµÄ¿ÉÓÃIPCÐÎʽ¡£ÊÇÕë¶ÔÆäËûͨÐÅ»úÖÆÔËÐÐЧÂʽϵͶøÉè¼ÆµÄ¡£ÍùÍùÓëÆäËüͨÐÅ»úÖÆ£¬ÈçÐźÅÁ¿½áºÏʹÓã¬À´´ïµ½½ø³Ì¼äµÄͬ²½¼°»¥³â¡£
ÐźÅÁ¿£¨semaphore£©£ºÖ÷Òª×÷Ϊ½ø³Ì¼äÒÔ¼°Í¬Ò»½ø³Ì²»Í¬Ïß³ÌÖ®¼äµÄͬ²½ÊֶΡ£
Ì×½Ó¿Ú£¨Socket£©£º¸üΪһ°ãµÄ½ø³Ì¼äͨÐÅ»úÖÆ£¬¿ÉÓÃÓÚ²»Í¬»úÆ÷Ö®¼äµÄ½ø³Ì¼äͨÐÅ¡£Æð³õÊÇÓÉUnixϵͳµÄBSD·ÖÖ§¿ª·¢³öÀ´µÄ£¬µ«ÏÖÔÚÒ»°ã¿ÉÒÔÒÆÖ²µ½ÆäËüÀàUnixϵͳÉÏ£ºLinuxºÍSystem VµÄ±äÖÖ¶¼Ö§³ÖÌ×½Ó×Ö¡£
Ò» ¹ÜµÀºÍFIFO £¨pipes£©
1 ¹ÜµÀµÄ¹Ø¼ü¸ÅÄî
¹ÜµÀÊǰëË«¹¤µÄ£¬Êý¾ÝÖ»ÄÜÏòÒ»¸ö·½ÏòÁ÷¶¯£»ÐèҪ˫·½Í¨ÐÅʱ£¬ÐèÒª½¨Á¢ÆðÁ½¸ö¹ÜµÀ£»
(ÔÚÒ»¸ö¸¸×Ó½ø³ÌÏ໥ͨÐŵĹý³ÌÖУ¬Êµ¼ÊÉÏÊÇ´ò¿ªÁËÁ½¸ö¹ÜµÀ)
Ö»ÄÜÓÃÓÚ¸¸×Ó½ø³Ì»òÕßÐֵܽø³ÌÖ®¼ä£¨¾ßÓÐÇ×Ôµ¹ØÏµµÄ½ø³Ì£©£»
µ¥¶À¹¹³ÉÒ»ÖÖ¶ÀÁ¢µÄÎļþϵͳ£º¹ÜµÀ¶ÔÓڹܵÀÁ½¶ËµÄ½ø³Ì¶øÑÔ£¬¾ÍÊÇÒ»¸öÎļþ£¬µ«Ëü²»ÊÇÆÕͨµÄÎļþ£¬Ëü²»ÊôÓÚijÖÖÎļþϵͳ£¬¶øÊÇ×ÔÁ¢ÃÅ»§£¬µ¥¶À¹¹³ÉÒ»ÖÖÎļþϵͳ£¬²¢ÇÒÖ»´æÔÚÓëÄÚ´æÖС£
Êý¾ÝµÄ¶Á³öºÍдÈ룺һ¸ö½ø³ÌÏò¹ÜµÀÖÐдµÄÄÚÈݱ»¹ÜµÀÁíÒ»¶ËµÄ½ø³Ì¶Á³ö¡£Ð´ÈëµÄÄÚÈÝÿ´Î¶¼Ìí¼ÓÔڹܵÀ»º³åÇøµÄĩ⣬²¢ÇÒÿ´Î¶¼ÊÇ´Ó»º³åÇøµÄÍ·²¿¶Á³öÊý¾Ý¡£
2 FIFOµÄ¹Ø¼ü¸ÅÄî
¹ÜµÀÓ¦ÓõÄÒ»¸öÖØ´óÏÞÖÆÊÇËüûÓÐÃû×Ö£¬Òò´Ë£¬Ö»ÄÜÓÃÓÚ¾ßÓÐÇ×Ôµ¹ØÏµµÄ½ø³Ì¼äͨÐÅ£¬ÔÚÓÐÃû¹ÜµÀ£¨named pipe»òFIFO£©Ìá³öºó£¬¸ÃÏÞÖÆµÃµ½Á˿˷þ¡£FIFO²»Í¬ÓڹܵÀÖ®´¦ÔÚÓÚËüÌṩһ¸ö·¾¶ÃûÓëÖ®¹ØÁª£¬ÒÔFIFOµÄÎ
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
#pragma once
#include <pthread.h>
class ThreadWrapper
{
public:
virtual ~ThreadWrapper();
static void EnterFunc(void *p);
int Open();
int Close();
bool TestCancel();
void ......
ʹÓÃselectº¯Êý¿ÉÒÔÒÔ·Ç×èÈûµÄ·½Ê½ºÍ¶à¸ösocketͨÐÅ¡£³ÌÐòÖ»ÊÇÑÝʾselectº¯ÊýµÄʹÓ㬹¦Äܷdz£¼òµ¥£¬¼´Ê¹Ä³¸öÁ¬½Ó¹Ø±ÕÒÔºóÒ²²»»áÐ޸ĵ±Ç°Á¬½ÓÊý£¬Á¬½ÓÊý´ïµ½×î´óÖµºó»áÖÕÖ¹³ÌÐò¡£
1. ³ÌÐòʹÓÃÁËÒ»¸öÊý×éfd_A£¬Í¨ÐÅ¿ªÊ¼ºó°ÑÐèҪͨÐŵĶà¸ösocketÃèÊö·û¶¼·ÅÈë´ËÊý×é¡£
2. Ê×ÏÈÉú³ÉÒ»¸ö½Ðsock_fdµÄsocketÃèÊö·û£¬ÓÃÓÚ¼àÌý¶Ë¿ ......
SIGHUP ÖÕÖ¹½ø³Ì ÖÕ¶ËÏß·¹Ò¶Ï
SIGINT ÖÕÖ¹½ø³Ì &nb ......