linux½ø³ÌÖ®¼äµÄͨÐÅ
¸¸×Ó½ø³ÌÈçºÎͨÐÅ£¿
Ò»¶Ô¸¸×Ó½ø³Ì¿ÉÒÔͨ¹ýÕý³£µÄ½ø³Ì¼äͨÐŵİ취(¹ÜµÀ£¬Ì×½Ó×Ö£¬ÏûÏ¢¶ÓÁУ¬¹²ÏíÄÚ´æ)½øÐÐͨÐÅ£¬µ«Ò²¿ÉÒÔͨ¹ýÀûÓÃËüÃÇ×÷Ϊ¸¸×Ó½ø³ÌµÄÏ໥¹ØÏµ¶ø¾ßÓеÄÒ»Ð©ÌØÊâ·½·¨¡£
Ò»¸ö×îÏÔÈ»µÄ·½·¨ÊǸ¸½ø³Ì¿ÉÒԵõ½×Ó½ø³ÌµÄÍ˳ö״̬¡£
ÒòΪ×Ó½ø³Ì´ÓËüµÄ¸¸½ø³Ì¼Ì³ÐÎļþÃèÊö·û£¬ËùÒÔ¸¸½ø³Ì¿ÉÒÔ´ò¿ªÒ»¸ö¹ÜµÀµÄÁ½¶Ë£¬È»ºófork£¬È»ºó¸¸½ø³Ì¹Ø±Õ¹ÜµÀÕâÒ»¶Ë£¬×Ó½ø³Ì¹Ø±Õ¹ÜµÀÁíÒ»¶Ë¡£ÕâÕýÊÇÄã´ÓÄãµÄ½ø³Ìµ÷ÓÑpopen()’º¯ÊýÔËÐÐÁíÒ»¸ö³ÌÐòËù·¢ÉúµÄÇé¿ö£¬Ò²¾ÍÊÇ˵Äã¿ÉÒÔÏò ‘popen()’·µ»ØµÄÎļþÃèÊö·û½øÐÐд²Ù×÷¶ø×Ó½ø³Ì½«Æäµ±×÷×Ô¼ºµÄ±ê×¼ÊäÈ룬»òÕßÄã¿ÉÒÔ¶ÁÈ¡Õâ¸öÎļþÃèÊö·ûÀ´¿´×Ó½ø³ÌÏò±ê×¼Êä³öдÁËʲô¡£(‘popen()’º¯ÊýµÄmode²ÎÊý¶¨ÒåÄãµÄÒâͼ(ÒëÕß×¢£ºmode=“r”Ϊ¶Á£¬mode=“w”Ϊд)£»Èç¹ûÄãÏë¶Áд¶¼×ö£¬ÄÇôÄã¿ÉÒÔ²¢²»À§ÄѵØÓùܵÀ×Ô¼º×öµ½)
¶øÇÒ£¬×Ó½ø³Ì¼Ì³ÐÓɸ¸½ø³ÌÓÃmmapº¯ÊýÓ³ÉäµÄÄäÃû¹²ÏíÄÚ´æ¶Î(»òÕßͨ¹ýÓ³ÉäÌØÊâÎļþ‘/dev/zero’)£»ÕâЩ¹²ÏíÄÚ´æ¶Î²»ÄÜ´ÓÎ޹صĽø³Ì·ÃÎÊ¡£
Linux½ø³Ì¼äͨÐŵķ½·¨
1¡¢¹ÜµÀ(pipe)
ÓÃÓï¾ßÓÐÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ
ÄäÃûÒ»´ÎÐÔʹÓõ쬰ëË«¹¤¡£Ò»¸ö½ø³ÌÍùÊä³ö¶Ëд¹ÜµÀ£¬ÁíÒ»¸ö½ø³Ì´ÓÊäÈë¶Ë¶Á¹ÜµÀ¡£
#include
int pipe(int fd[2]);
fd[0]:±íʾ¶Á¶Ë
fd[1]:±íʾд¶Ë
2¡¢ÓÐÃû¹ÜµÀ(named pipe)
ÔÊÐíÎÞÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ
ÓÐÃû¹ÜµÀ£¬×÷ÎªÌØ±ðÎļþ´æ´¢ÓÚÎļþϵͳÖС£ÓÐÃû¹ÜµÀÒ»µ©½¨Á¢¾Í´æÔÚÓÚÎļþϵͳÖУ¬³ý·ÇÏÔʾµÄunlink
#include
#include
int mknod(const char *path,mode_t mod,dev_t dev);
int mkfifo(const char *path,mode_t mode);
path:´´½¨ÓÐÃû¹ÜµÀµÄȫ·¾¶Ãû
mod:´´½¨ÓÐÃû¹ÜµÀµÄģʽ£¬Ö¸´æÈ¡È¨ÏÞ
dev:É豸ֵ£¬¸Ãֵȡ¾öÓÚÎļþ´´½¨µÄÖÖÀ࣬ËüÖ»ÔÚ´´½¨É豸Îļþʱ²Å»áÓõ½
×¢Òâ:ÓÐÃû¹ÜµÀ´´½¨ºó¾Í¿ÉÒÔʹÓÃÁË£¬ÓÐÃû¹ÜµÀºÍ¹ÜµÀµÄʹÓ÷½·¨»ù±¾ÊÇÏàͬµÄ¡£Ö»ÊÇʹÓÃÓÐÃû¹ÜµÀµÄʱºò±ØÐëÏȵ÷ÓÃopen()½«Æä´ò¿ª
ÒòΪÓÐÃû¹ÜµÀÊÇÒ»¸ö´æÔÚÓÚÓ²ÅÌÉϵÄÎļþ£¬¶ø¹ÜµÀÊÇ´æÔÚÓÚÄÚ´æÖеÄÌØÊâÎļþ
ÏÂÃæµÄ³ÌÐòÒ»¸ö¶Á¹ÜµÀ£¬ÁíÒ»¸öд¹ÜµÀ£¬ÕâÁ½¸öº¯ÊýÓõÄÊÇ·Ç×èÈû¶Áд¹ÜµÀ
#include
#include
#include
#include
#include
#include
#include
#de
Ïà¹ØÎĵµ£º
Ò»¸öÕýÔò±í´ïʽ¾ÍÊÇÓÉÆÕͨ×Ö·û£¨ÀýÈç×Ö·û a µ½ z£©ÒÔ¼°ÌØÊâ×Ö·û£¨³ÆÎªÔª×Ö·û£©×é³ÉµÄÎÄ×Öģʽ¡£¸ÃģʽÃèÊöÔÚ²éÕÒÎÄ×ÖÖ÷Ìåʱ´ýÆ¥ÅäµÄÒ»¸ö»ò¶à¸ö×Ö·û´®¡£ÕýÔò±í´ïʽ×÷Ϊһ¸öÄ£°å£¬½«Ä³¸ö×Ö·ûģʽÓëËùËÑË÷µÄ×Ö·û´®½øÐÐÆ¥Åä¡£
\
½«ÏÂÒ»¸ö×Ö·û±ê¼ÇΪһ¸öÌØÊâ×Ö·û¡¢»òÒ»¸öÔÒå×Ö·û¡¢»òÒ»¸ö ºóÏòÒýÓᢻòÒ»¸ö°Ë½øÖÆ×ªÒå· ......
ʲôÊÇprocÎļþϵͳ£¿ procÎļþϵͳÊÇÒ»¸öαÎļþϵͳ£¬ËüÖ»´æÔÚÄÚ´æµ±ÖУ¬¶ø²»Õ¼ÓÃÍâ´æ¿Õ¼ä¡£ËüÒÔÎļþϵͳµÄ·½Ê½Îª·ÃÎÊϵͳÄÚºËÊý¾ÝµÄ²Ù×÷Ìṩ½Ó¿Ú¡£Óû§ºÍÓ¦ÓóÌÐò¿ÉÒÔͨ¹ýprocµÃµ½ÏµÍ³µÄÐÅÏ¢£¬²¢¿ÉÒԸıäÄں˵ÄijЩ²ÎÊý¡£ÓÉÓÚϵͳµÄÐÅÏ¢£¬Èç½ø³Ì£¬ÊǶ¯Ì¬¸Ä±äµÄ£¬ËùÒÔÓû§»òÓ¦ÓóÌÐò¶ÁÈ¡procÎļþʱ£¬procÎļþϵͳÊǶ¯Ì¬´Ó ......
²½Ö裺
Ò»¡£ÊìϤÔÚÆÕͨµçÄÔÉÏÓÃ
GDBµ÷ÊԵĻù±¾·½Ê½¡£²Î¼û£º
http://www.ibm.com/developerworks/linux/library/l-gdb/
¶þ¡£ÏÂÔØ¡¶
gdb
quick reference¡·£¬
2ÕÅÖ½£¬´òÓ¡³öÀ´·ÅÔÚÊֱ߱¸Óá£
Èý¡£ÈÃǶÈëʽϵͳ֧³Ö
gdbserver.
£¨ÔÚ
openwrtÉÏ£¬¼´ÔÚ
make
menuconfigʱѡÔñ±àÒë
gdbserver£©
ËÄ¡£½øÐе÷ÊÔ
&nbs ......
ÔÚÃüÁîģʽÏÂÉèÖÃIPµØÖ·£¬ÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖÊDZ¾´Î¿ª»úÓÐЧ£¬¼´Ê¹ÓÃifconfig eth0 IP netmask µÄ·½Ê½£¬ÏµÍ³Ò»µ©¹Ø»úÖØÆôÐèÒªÖØÐÂÉèÖÃIP£»ÁíÒ»ÖÖÖ±½Ó¸ü¸ÄÅäÖÃÎļþ¡£ÔÚÕâÀï²ÉÓÃÖ±½ÓÐÞ¸ÄÅäÖÃÎļþµÄ·½Ê½½øÐÐÉèÖÃIP¡£
LINUX IPÅäÖÃÎļþΪifcfg-eth0£¬¸ÃÎļþ´æ·ÅÔÚ/etc/sysconfig/network-scripts·¾¶Ï£¬
²ÉÓÃV ......
# redhat-config-network
/* ʹÓÃifconfigÃüÁîÅäÖò¢²é¿´ÍøÂç½Ó¿ÚÇé¿ö */
//ÅäÖÃeth0µÄIP£¬Í¬Ê±¼¤»îÉ豸
# ifconfig eth0 192.168.168.119 netmask 255.255.255.0 up
//ÅäÖÃeth0±ðÃûÉ豸 eth0:1 µÄIP£¬²¢Ìí¼Ó·ÓÉ
# ifconfig eth0:1 192.168.168.110
# route add –host 192.168.168.110 dev eth0:1
//¼¤»î£¨½û ......