Cº¯ÊýÖ¸ÕëµÄÓ÷¨
2008-06-05 12:38------------------------------------------------------------------------------------------------
º¯ÊýÖ¸Õëͨ³£ÓÃÀ´ÊµÏֻص÷£¬Æä»ù±¾Ó÷¨ÈçÏ£º
1¡¢¶¨Ò庯ÊýÖ¸ÕëÀàÐÍ
// ¶¨ÒåÒ»¸öÔÐÍΪint Fun( int a );µÄº¯ÊýÖ¸Õë
typedef int (*PTRFUN) ( int aPara );
2¡¢º¯ÊýÖ¸Õë±äÁ¿µÄ¶¨Òå
PTRFUN pFun; // pFun Ϊº¯ÊýÖ¸Õë±äÁ¿Ãû
int (*pFun2) ( int a ); // pFun2Ò²ÊǺ¯ÊýÖ¸Õë±äÁ¿Ãû
3¡¢º¯ÊýÖ¸Õë×÷Ϊº¯ÊýµÄ²ÎÊý´«µÝ
// ¶¨Ò廨µ÷º¯Êý
int CallBack( int a ){
return ++a;
}
// ¶¨Ò廨µ÷Õߺ¯Êý
void Caller( PTRFUN cb )
// void Caller( int (*cb) ( int ) ) // Ò²¿ÉÕâÑùÉêÃ÷
{
int nPara = 1;
int nRet = cb( nPara );
}
// ʹÓûص÷
void Test(){
Caller( CallBack ); // Ö±½ÓʹÓûص÷º¯Êý
PTRFUN cb = CallBack; // int (*cb) ( int ); cb = CallBack;
int nRet1 = cb( 99 ); // nRet1 = 100;
}
4¡¢º¯ÊýÖ¸ÕëµÄÖ¸ÕëʹÓÃ
// ¶¨Ò庯ÊýÖ¸ÕëµÄÖ¸Õë
typedef int (**PTRPTRFUN) ( int aPara );
// º¯ÊýÖ¸ÕëµÄÖ¸Õë×÷Ϊ²ÎÊý
void PtrCaller( PTRPTRFUN cb )
// void PtrCaller( PTRFUN* cb ) // Ö¸ÕëÉêÃ÷
// void PtrCaller( int (**cb) ( int ) ) // ÔÐÍÉêÃ÷
{
int nRet = (*cb)(999); // nRet = 1000;
}
// ʹÓú¯ÊýÖ¸ÕëµÄÖ¸Õë
void Test(){
PTRFUN cb = CallBack;
PtrCaller( &cb );
}
5¡¢º¯ÊýÖ¸ÕëÊý×éµÄʹÓÃ
// º¯ÊýÖ¸ÕëÊý×éµÄ¶¨Òå
PTRFUN fArray[10];
// int (*fArray[10]) ( int ); // ÔÐͶ¨Òå
for ( int i = 0; i < 10; i++ ){
fArray[i] = CallBack;
int nRet = fArray[i](i); // nRet = i+1;
}
6¡¢º¯ÊýÖ¸ÕëµÄ´óС
// ¼ÈÈ»½ÐÖ¸Õ룬ËùÒÔ¸úÆÕͨµÄÖ¸ÕëÒ»ÑùÔÚ32λϵͳÏ´óС¶¼Îª4
int nSz1 = sizeof(PTRFUN); // nSz1 = 4;
int nSz2 = sizeof(PTRPTRFUN); // nSz2 = 4;
×¢Ò⣺
±àÒëÆ÷´æÔÚ¶àÖÖÖÖµ÷Óù淶£¬
Ïà¹ØÎĵµ£º
Ò»°ãÎÒÃǵ÷ÓÃshell½Å±¾¶¼ÓÃsystem()À´ÊµÏÖ£¬È»ºó·¢ÏÖsytem·µ»ØÖµ²»ºÃ¿ØÖƶøÇÒת»»Âé·³(»¹ÒªÓÒÒÆ4λ¼´/256)£¬ÓÚÊÇÎÒÓÃpopenÀ´»ñÈ¡shellµÄ·µ»ØÖµ¡£¹ûÈ»ÔÚUnixÊÀ½çÀïÃæ£¬Í¨µÀ¾ÍÊÇÁ¬½á¸÷¸ö·½ÃæµÄÇÅÁº°¡£¡
´úÂëÀý×ÓÈçÏ£º
#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
int main (int argc ......
¼ò½é
±¾ÎÄÊÇΪÁËÂú×㿪·¢ÈËÔ±µÄÐèÒª¶øÐ´µÄ¡£ÎÒÃÇ×ܽáÁËÒ»Ì×Ö¸ÄÏ£¬ÎÞÂÛ×÷Ϊ¿ª·¢ÈËÔ±»¹ÊǹËÎÊ£¬ÕâЩָÄ϶àÄêÀ´Ò»Ö±¶¼ºÜºÃµØÖ¸µ¼×ÅÎÒÃÇ£¬ÎÒÃǰÑËüÃÇ×÷Ϊ½¨ÒéÌṩ¸øÄú£¬Ï£Íû¶ÔÄúµÄ¹¤×÷ÓÐËù°ïÖú¡£ÄúÒ²Ðí²»ÔÞͬÆäÖеÄijЩָÄÏ£¬µ«ÎÒÃÇÏ£ÍûÄú»áϲ»¶ÆäÖеÄһЩ²¢ÔÚÄúµÄ±à³Ì»òÒÆÖ²ÏîÄ¿ÖÐʹÓÃËüÃÇ¡£
·ç¸ñÓëÖ¸ÄÏ
ʹÓÃÒ»ÖÖʹ´úÂë¾ß ......
9Ô¶¼¿ì½áÊøÁË£¬Ö®Ç°Ò»Ö±Ã¦µ½Ð´×Ô¼ºµÄ¶«Î÷¼ÓÉÏÉϰࡣ»ù±¾Ã»ÓÐʱ¼äÑо¿Ï»ã±àºÍC C++·½ÃæµÄ¸ÐÐËȤµÄ¶«Î÷¡£ÔÙÔõô˵Â9Ô»¹ÊǵÃдһƪÈö£¬ÒÔºóÿÔÂÖÁÉÙһƪ°É¡£¸ø×Ô¼º¶¨ÁË£¬Ï£Íû´ó¼Ò¼à¶½¡£ºÙºÙ£¡
ÕâÆªÎÄÕ¾ÍÀ´Ì¸Ì¸Æ½³£ºÜ³£¼ûµÄHOOK¼¼Êõ£¬ÕâÀïÄØ¡£Ð´µÃ±È½Ï¼òµ¥£¬·½·¨ºÜ¶à¡£Ö»½²ÔÀí£¡Ï£Íû´óÄñÃDZðÍÂÎÒ¿ÚË®¹þ - -¡£ºÃ£¡ÇÐÈëÕ ......
½ñÌ죬ÔÚÉè¼ÆC´úÂëµÄʱºò£¬Ïëµ½ÁËÒ»µã£¬ÏëÈÃB°üº¬A£¬²¢×ÔÓÉʹÓÃAµÄÍ·Îļþ£¬µ«ÊÇÈ´²»ÏëÈðüº¬BµÄCʹÓÃA£¬ÈÃAûÓÐȨÏÞÖ±½ÓʹÓÃʹÓÃC……ÈçÏÂͼ£º
²»ÖªµÀÓ¦¸ÃÔõô°ì¡£µ±Ê±ÐÄÏ룬Èç¹ûÊÇC++£¬Ê¹Óü̳У¬ºÜÁé»î¾ÍÄܸ㶨ÕâЩÊÂ
¸úͬÊÂÉÌÁ¿ÁËһϣ¬¶Ô·½¸ø³öÁË ......
Ò»¡¢Ê²Ã´ÊÇc/sºÍb/s
ÒªÏë¶Ô“c/s”ºÍ“b/s”¼¼Êõ·¢Õ¹±ä»¯ÓÐËùÁ˽⣬Ê×ÏȱØÐë¸ãÇå³þÈý¸öÎÊÌâ¡£
µÚÒ»¡¢Ê²Ã´ÊÇc/s½á¹¹¡£
c/s£¨client/server£©½á¹¹£¬¼´´ó¼ÒÊìÖªµÄ¿Í»§»úºÍ·þÎñÆ÷½á¹¹¡£ËüÊÇÈí¼þϵͳÌåϵ½á¹¹£¬Í¨¹ýËü¿ÉÒÔ³ä·ÖÀûÓÃÁ½¶ËÓ²¼þ»·¾³µÄÓÅÊÆ£¬½«ÈÎÎñºÏÀí·ÖÅäµ½client¶ËºÍserver¶ËÀ´ÊµÏÖ£¬½µµÍÁ ......