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

ѧϰ±Ê¼Ç Unix/Linux½ø³Ì¼äͨÐÅ

ÃæÊÔʱһÔٵر»Îʵ½½ø³Ì¼äͨÐŵÄÇé¿ö£¬¶øÎÒµÄÀí½âһֱͣÁôÔÚ¸ÅÄîÉϺÍÃû´ÊÉÏ£¬±ØÐëÒª×öµãʵÑé¼ÓÉîÀí½â¡£
IPC:Interprocess communication¡£ÓÐЩIPCµÄ·½·¨²»½ö¿ÉÒÔÓÃÓÚÏàͬÖ÷»ú£¬Ò²¿ÉÒÔÓÃÓÚ²»Í¬Ö÷»ú£¬ÈçsocketsºÍSTREAMS¡£
¾­µäIPCÖ®Ò»£ºpipes(¹ÜµÀ)
,ʹÓÃ×î¹ã·º£¬¾ßÓÐÇ×Ôµ¹ØÏµ
µÄ½ø³Ì¼ä²ÅÄÜʹÓùܵÀ½øÐÐIPC¡£
ʹÓÃÁ˹ܵÀµÄÀý×Ó£ºls -a | grep "jun"
×Ô¼ºµÄ³ÌÐòÖÐʹÓùܵÀµÄ·½·¨£º¸¸½ø³Ì´´½¨pipe£¬È»ºófork×Ó½ø³Ì£¬Õâʱ¸¸×Ó½ø³Ìͨ¹ýpipe½øÐÐͨÐÅÁË¡£
Àý×Ó´úÂ룺(ΪÁËץס֨µã£¬É¾³ýÁË´¦Àí´íÎóµÄ´úÂë)
int main()
{
    int fd[2]; //¹ÜµÀÊÇÒ»ÖÖÎļþ£¬ÓÐread¶ËºÍwrite¶Ë£¬ÒªÓõ½Á½¸öfile descriptor
    pipe(fd); //´´½¨¹ÜµÀ
    pid = fork();
    if (pid > 0) { //¸¸½ø³Ì
       close(fd[0]); //fd[0]ÊÇread¶Ë£¬fd[1]ÊÇwrite¶Ë£¬ÕâÀï¹Ø±Õread¶Ë¡£close()ÊÇFile I/OµÄAPI¡£
       write(fd[1], ”hello pipe\n",  11); //ͨ¹ýwrite¶Ë£¬Ð´ÈëÊý¾Ý¡£write()ÊÇFile I/OµÄAPI¡£
    }
    else {  //×Ó½ø³Ì
       close(fd[1]); //¹Ø±Õwrite¶Ë
       int n = read(fd[0], buf, MAX_SIZE);
       write(1, buf, n); //ÕûÊý1£¬ÔÚÎÒËùÖªµÀµÄ²Ù×÷ϵͳµÄʵÏÖÖÐÊDZê×¼Êä³öµÄFile descriptor
    }
    exit(0);
}
³ÌÐò´úÂëÖÐʹÓùܵÀµÄÌ×·һ°ãÊÇ£ºpipe;fork;exec*£¬²Ù×÷ϵͳÓÖÌṩÁËpopenºÍpcloseº¯ÊýÕûºÏÓйعܵÀµÄº¯Êý£¬Ê¹µÃ¿ÉÒÔÔÚ×Ô¼ºµÄ³ÌÐòÖÐÓøüÉٵĴúÂëʵÏֹܵÀ¡£
¾­µäIPCÖ®¶þ£ºFIFOs, FIFOs are sometimes called named pipes(ÓÐÃû¹ÜµÀ)¡£Í»ÆÆÁËÖ»ÄÜÔÚÏà¹Ø½ø³Ì¼äʹÓõÄÏÞÖÆ.
d
²¹£ºÃæÊÔʱÎҲ²⹲ÏíÎļþÊÇÒ»ÖÖIPC£¬Õâ¸ö²»¶Ô¡£ÎÒÒòΪ¶Ô¹²ÏíÄÚ´æÃ»¼ÇÀο¿£¬ËùÒÔ»á²Â²âµ½¹²ÏíÎļþÊÇÒ»ÖÖIPC¡£


Ïà¹ØÎĵµ£º

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

ÁèÑô½ÌÓýǶÈëʽLinuxÊîÆÚÇ¿»¯°à

½ü¼¸Ä꣬ǶÈëʽÐÐҵѸÃÍ·¢Õ¹£¬Ç¶Èëʽ¼¼ÊõÎÞ´¦²»ÔÚ£¬´ÓËæÉíЯ´øµÄmp3¡¢ÊÖ»ú¡¢PDAµ½¼ÒÍ¥Ö®ÖеÄÖÇÄܵçÊÓ¡¢ÖÇÄܱùÏä¡¢»ú¶¥ºÐ£¬ÔÙµ½¹¤ÒµÉú²ú¡¢ÓéÀÖÖеĻúÆ÷ÈË£¬ÎÞ²»²ÉÓÃǶÈëʽ¼¼Êõ¡£Õâµ¼ÖÂǶÈëʽÈ˲ÅÐèÇóҲѸËÙÔö¼Ó£¬Ç¶Èëʽ¿ª·¢ÒѳÉΪµ±Ç°×îÈÈÃÅ×îÓз¢Õ¹Ç°Í¾µÄÐÐÒµÖ®Ò»¡£Ç¶Èëʽ¿ª·¢ÈËÔ±µÄн×ÊҲˮÕÇ´¬¸ß£¬ÔÚ±±¾©£¬Ç¶Èëʽ³õ¼¶¹¤³Ì ......

linuxÄÚºËregister_chrdev_region()ϵÁк¯Êý

ÄÚºËÖÐËùÓÐÒÑ·ÖÅäµÄ×Ö·ûÉ豸±àºÅ¶¼¼Ç¼ÔÚÒ»¸öÃûΪ chrdevs É¢ÁбíÀï¡£¸ÃÉ¢ÁбíÖеÄÿһ¸öÔªËØÊÇÒ»¸ö char_device_struct ½á¹¹£¬ËüµÄ¶¨ÒåÈçÏ£º
   static struct char_device_struct {
       struct char_device_struct *next;    // Ö¸ÏòÉ¢ÁгåÍ»Á´±íÖеÄÏÂÒ»¸öÔªËØ ......

linuxÎå¸ö²éÕÒÃüÁî


whereis ÃüÁîÏê½â
¹¦ÄÜ˵Ã÷£º²éÕÒÎļþ¡£
Óï¡¡¡¡·¨£ºwhereis [-bfmsu][-B ...][-M ...][-S ...][Îļþ...]
²¹³ä˵Ã÷£ºwhereisÖ¸Áî»áÔÚÌØ¶¨Ä¿Â¼ÖвéÕÒ·ûºÏÌõ¼þµÄÎļþ¡£ÕâЩÎļþµÄÁÒÐÔÓ¦ÊôÓÚԭʼ´úÂ룬¶þ½øÖÆÎļþ£¬»òÊǰïÖúÎļþ¡£
²Î¡¡¡¡Êý£º
¡¡-b ¡¡Ö»²éÕÒ¶þ½øÖÆÎļþ¡£
¡¡-B ¡¡Ö»ÔÚÉèÖõÄĿ¼Ï²éÕÒ¶þ½øÖÆÎļþ¡£
¡¡-f ......

Linux»·¾³½ø³Ì¼äͨÐÅ£¨¶þ£©: Ðźţ¨ÉÏ£©

Ò»¡¢Ðźż°ÐźÅÀ´Ô´
Ðźű¾ÖÊ
ÐźÅÊÇÔÚÈí¼þ²ã´ÎÉ϶ÔÖжϻúÖÆµÄÒ»ÖÖÄ£Ä⣬ÔÚÔ­ÀíÉÏ£¬Ò»¸ö½ø³ÌÊÕµ½Ò»¸öÐźÅÓë´¦ÀíÆ÷ÊÕµ½Ò»¸öÖжÏÇëÇó¿ÉÒÔ˵ÊÇÒ»ÑùµÄ¡£ÐźÅÊÇÒì²½µÄ£¬Ò»¸ö½ø³Ì²»±ØÍ¨¹ýÈκβÙ×÷À´µÈ´ýÐźŵĵ½´ï£¬ÊÂʵÉÏ£¬½ø³ÌÒ²²»ÖªµÀÐźŵ½µ×ʲôʱºòµ½´ï¡£
ÐźÅÊǽø³Ì¼äͨÐÅ»úÖÆÖÐΨһµÄÒ첽ͨÐÅ»úÖÆ£¬¿ÉÒÔ¿´×÷ÊÇÒì²½Í¨Ö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ