Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÄÚºË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϶ÁÓ²ÅÌÐòÁкŵijÌÐò


Linux϶ÁÓ²ÅÌÐòÁкŵijÌÐò
/*
* gethddsn.c
*
* Get serial number of ide hard disk.
* example: my Maxtor 15G 's s/n is K306S04C.
*
* Compile with: gcc -O2 gethddsn.c
*
* Xiaoming DONG <xmdong@263.net>
* Aug 24, 2000
*
*/
#include <stdio.h>
#include <stdlib.h>
#includ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ