ÔÚlinux½ø³ÌÖеÄÐźÅÆÁ±Î
Ô´´ÎÄÕ£¬×ªÔØÇë×¢Ã÷³ö´¦£¬Ð»Ð»£¡
×÷ÕߣºÇåÁÖ£¬²©¿ÍÃû£º·É¿Õ¾²¶É
ÔÚlinuxµÄ½ø³ÌÖпÉÒÔ½ÓÊÕµ½¸÷ÖÖµÄÐźţ¬²¢ÇÒÈç¹ûÄã²»¶ÔÐźŽøÐд¦Àí£¬linuxÖеĽø³Ì¾Í»á²ÉÓÃĬÈϵĴ¦Àí·½Ê½´¦Àí£¬±ÈÈçctrl-cµÄÐźţ¬½ø³Ì¶ÔËüµÄ´¦Àí¾ÍÊÇÖÕÖ¹½ø³ÌµÄÖ´ÐС£
ÔÚlinuxÖУ¬ÎÒÃÇÒ²¿ÉÒÔÔÚ½ø³ÌÖÐÆÁ±ÎµôijЩÐźţ¬Ê¹½ø³Ì²»È¥´¦ÀíÕâЩÐźţ¬µ«ÆäÖеÄSIGKILLºÍSIGSTOPÊDz»Äܱ»×èÈûµÄ¡£
ÔÚÕâÀïÏȽéÉܼ¸¸öÐźŵĺ¯Êý£º
int sigempty(sigset_t *set); // Çå¿ÕÐźż¯set
int sigfillset(sigset_t *set); // ÌîÂúÐźż¯£¬¼´ÈÃset°üº¬ËùÓеÄÐźÅ
int sigaddset(sigset_t *set, int signo); // ÔÚsetÖÐÔö¼ÓsignoÐźÅ
int sigdelset(sigset_t *set, int signo); // ÔÚsetÖÐÈ¥µôsignoÐźÅ
int sigismember(sigset_t *set, int signo); // ÐźÅsignoÊÇ·ñÔÚÐźż¯setÖÐ
int sigprocmask(int how, const sigset_t set, sigset_t oset); // Èôoset·Ç¿Õ£¬Ôò½ø³ÌµÄµ±Ç°ÐźÅÆÁ±Î×Öͨ¹ýoset·µ»Ø£¬ÈôsetÊÇÒ»¸ö·Ç¿ÕÖ¸Õ룬×ŲÎÊýhowָʾÈçºÎÐ޸ĵ±Ç°ÐźŵÄÆÁ±Î×Ö£¬how¿ÉÒÔÈ¡Èý¸öÖµ£º
SIG_BLOCK£ºÔö¼ÓÒ»¸öÐźš£
SIG_UNBLOCK£º½â³ýÒ»¸öÐźš£
SIG_SETMASK£º¸Ã½ø³ÌµÄÐźŽ«±»setÐźż¯È¡´ú¡£
int sigpengding(sigset_t *set); // ¸Ãº¯Êý·µ»ØÐźż¯£¬¸ÃÐźÅͨ¹ýset²ÎÊý·µ»Ø¡£
ÒÔÉϺ¯Êý¶¼ÔÚ#include <signal.h> Í·ÎļþÖС£
ÏÂÃæÓá¶unix»·¾³¸ß¼¶±à³Ì¡·ÀïµÄÒ»¸öÀý×Ó˵Ã÷һϣ¬´úÂëÓÐËùÐ޸ģ¬ÏÈ¿´´úÂ루main.c£¬ÀïÃæÓиöÈ˶ԴúÂëµÄ×¢ÊÍ£©£º
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
static void sig_quit(int);
int
main(void)
{
sigset_t newmask, oldmask, pendingmask;
//ÉèÖöÔÐźÅSIGQUITµÄ´¦Àíº¯Êý
if (signal(SIGQUIT, sig_quit) == SIG_ERR)
{
fprintf(stderr, "can't catch SIGQUIT\n");
exit(1);
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÏÂÃæµÄ´úÂë·ÖÎöÊǸù¾Ýlinux-2.6.17.14_stm22°æ±¾
#define STSYS_WriteRegDev32LE(Address_p, value) writel((u32)value, (void*)Address_p)
ÔÚinclude/asm-sh/io.h
#define writel(v,a) ({__raw_writel((v),(a));mb();})
#define __raw_write(v,a) __writ ......
Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£¨ÀýÈç2.0.30£©¶¼ÊÇÒ»¸öÎȶ¨µØ·¢ÐеĺËÐÄ£¬¶øÈκÎÆæÊýµÄºËÐÄ£¨ÀýÈç2.1.42£©¶¼ÊÇÒ»¸ö¿ª·¢ÖеĺËÐÄ¡£
±¾ÎÄ»ùÓÚÎȶ¨µÄ2.2.5Ô´´úÂ룬µÚ¶þ²¿·ÖµÄʵÏÖƽ̨Ϊ Redhat Linux 6.0¡£
2£®ºËÐÄÔ´³ÌÐò ......
¹ØÓÚread(...)·µ»ØÖµµÄÕýÈ·Åжϣºp30
File I/O µÄ read(...)º¯ÊýÓ÷¨£º
ÓÐÎÊÌâµÄ´úÂ룬ֻÅжϷµ»ØֵΪ-1µÄÇé¿ö¡£
unsigned long word;
ssize_t nr;
/* read a couple bytes into 'word' from 'fd' */
nr = read (fd, &word, sizeof (unsigned long));
if (nr == -1)
/* error */
Indeed, a call to read( ) ca ......