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

ÔÚ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);


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

Linux Óû§²ãÈçºÎµ÷ÓýӿÚÉèÖüĴæÆ÷

ÏÂÃæµÄ´úÂë·ÖÎöÊǸù¾Ý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 ......

linuxÄں˵¼¶Á

Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£¨ÀýÈç2.0.30£©¶¼ÊÇÒ»¸öÎȶ¨µØ·¢ÐеĺËÐÄ£¬¶øÈκÎÆæÊýµÄºËÐÄ£¨ÀýÈç2.1.42£©¶¼ÊÇÒ»¸ö¿ª·¢ÖеĺËÐÄ¡£
±¾ÎÄ»ùÓÚÎȶ¨µÄ2.2.5Ô´´úÂ룬µÚ¶þ²¿·ÖµÄʵÏÖƽ̨Ϊ Redhat Linux 6.0¡£
2£®ºËÐÄÔ´³ÌÐò ......

Linux System ProgrammingÔĶÁ±Ê¼ÇÖ® read(....)

¹ØÓÚ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 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ