ÓÅ»¯C´úÂë³£Óõļ¸ÕÐ
ÔÚÐÔÄÜÓÅ»¯·½ÃæÓÀÔ¶×¢Òâ80-20ÔÔò£¬¼´20%µÄ³ÌÐòÏûºÄÁË80%µÄÔËÐÐʱ¼ä£¬Òò¶øÎÒÃÇÒª¸Ä½øÐ§ÂÊ£¬×îÖ÷ÒªÊÇ¿¼ÂǸĽøÄÇ20%µÄ´úÂë¡£²»ÒªÓÅ»¯³ÌÐòÖпªÏú²»´óµÄÄÇ80%£¬ÕâÊÇÀͶøÎÞ¹¦µÄ¡£
µÚÒ»ÕУºÒԿռ任ʱ¼ä
¼ÆËã»ú³ÌÐòÖÐ×î´óµÄì¶ÜÊǿռäºÍʱ¼äµÄì¶Ü£¬ÄÇô£¬´ÓÕâ¸ö½Ç¶È³ö·¢ÄæÏò˼άÀ´¿¼ÂdzÌÐòµÄЧÂÊÎÊÌ⣬ÎÒÃǾÍÓÐÁ˽â¾öÎÊÌâµÄµÚ1ÕÐ--ÒԿռ任ʱ¼ä¡£±ÈÈç˵×Ö·û´®µÄ¸³Öµ£º
·½·¨A£ºÍ¨³£µÄ°ì·¨
#define LEN 32
char string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,"This is a example!!"£©;
·½·¨B£º
const char string2[LEN] ="This is a example!";
char * cp;
cp = string2
ʹÓõÄʱºò¿ÉÒÔÖ±½ÓÓÃÖ¸ÕëÀ´²Ù×÷¡£
´ÓÉÏÃæµÄÀý×Ó¿ÉÒÔ¿´³ö£¬AºÍBµÄЧÂÊÊDz»Äܱȵġ£ÔÚͬÑùµÄ´æ´¢¿Õ¼äÏ£¬BÖ±½ÓʹÓÃÖ¸Õë¾Í¿ÉÒÔ²Ù×÷ÁË£¬¶øAÐèÒªµ÷ÓÃÁ½¸ö×Ö·ûº¯Êý²ÅÄÜÍê³É¡£BµÄȱµãÔÚÓÚÁé»îÐÔûÓÐAºÃ¡£ÔÚÐèҪƵ·±¸ü¸ÄÒ»¸ö×Ö·û´®ÄÚÈݵÄʱºò£¬A¾ßÓиüºÃµÄÁé»îÐÔ£»Èç¹û²ÉÓ÷½·¨B£¬ÔòÐèÒªÔ¤´æÐí¶à×Ö·û´®£¬ËäȻռÓÃÁË´óÁ¿µÄÄڴ棬µ«ÊÇ»ñµÃÁ˳ÌÐòÖ´ÐеĸßЧÂÊ¡£
Èç¹ûϵͳµÄʵʱÐÔÒªÇóºÜ¸ß£¬Äڴ滹ÓÐһЩ£¬ÄÇÎÒÍÆ¼öÄãʹÓøÃÕÐÊý¡£
µÚ¶þÕУº ʹÓÃºê¶ø²»ÊǺ¯Êý¡£
ÕâÒ²ÊǵÚÒ»ÕÐ ......
¼ò½é
±¾ÎÄÊÇΪÁËÂú×㿪·¢ÈËÔ±µÄÐèÒª¶øÐ´µÄ¡£ÎÒÃÇ×ܽáÁËÒ»Ì×Ö¸ÄÏ£¬ÎÞÂÛ×÷Ϊ¿ª·¢ÈËÔ±»¹ÊǹËÎÊ£¬ÕâЩָÄ϶àÄêÀ´Ò»Ö±¶¼ºÜºÃµØÖ¸µ¼×ÅÎÒÃÇ£¬ÎÒÃǰÑËüÃÇ×÷Ϊ½¨ÒéÌṩ¸øÄú£¬Ï£Íû¶ÔÄúµÄ¹¤×÷ÓÐËù°ïÖú¡£ÄúÒ²Ðí²»ÔÞͬÆäÖеÄijЩָÄÏ£¬µ«ÎÒÃÇÏ£ÍûÄú»áϲ»¶ÆäÖеÄһЩ²¢ÔÚÄúµÄ±à³Ì»òÒÆÖ²ÏîÄ¿ÖÐʹÓÃËüÃÇ¡£
·ç¸ñÓëÖ¸ÄÏ
ʹÓÃÒ»ÖÖʹ´úÂë¾ßÓпɶÁÐÔºÍÒ»ÖÂÐÔµÄÔ´´úÂë·ç¸ñ¡£Èç¹ûûÓÐÍŶӴúÂë·ç¸ñ»ò×Ô¼ºµÄ·ç¸ñ£¬Äú¿ÉÒÔʹÓÃÓë´ó¶àÊý C ³ÌÐòÔ±²ÉÓÃµÄ Kernighan ºÍ Ritchie ·ç¸ñÏàËÆµÄ·ç¸ñ¡£È»¶ø£¬¾ÙÒ»¸ö¼«¶ËµÄÀý×Ó£¬ÓпÉÄÜ×îÖÕ»áд³öÓëÏÂÃæÏàËÆµÄ´úÂ룺
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);
— 1984 ÄêÄ£ºý C ´úÂë´óÈü“²î¾¢½±”¡£Ó¦´úÂë×÷ÕßÒªÇóÄäÃû¡£
ͨ³£½«Ö÷Àý³Ì¶¨ÒåΪ main()¡£¶ÔÓ¦µÄ ANSI ±àд·½Ê½ÊÇ int main(void)£¨Èç¹û²»¿¼ÂÇÃüÁîÐвÎÊýµÄ»°£©»ò int main( int argc, char **argv )¡£ANSI ÒÔǰµÄ±àÒëÆ÷»áÊ¡ÂÔ voidÉùÃ÷£¬»òÁгö±äÁ¿ÃûÒÔ¼°½ôËæÆäºóµÄÉùÃ÷¡£
¿Õ¸ñ
³ä·ÖÀûÓÃˮƽºÍ´¹Ö±¿Õ¸ñ¡£Ëõ½øºÍ¿Õ¸ñ¼ä¾àÓ¦·´Ó³³ö´úÂëµÄ¿é½á¹¹¡£
Ó¦½«Ìõ¼þÔËËã·ûµ ......
9Ô¶¼¿ì½áÊøÁË£¬Ö®Ç°Ò»Ö±Ã¦µ½Ð´×Ô¼ºµÄ¶«Î÷¼ÓÉÏÉϰࡣ»ù±¾Ã»ÓÐʱ¼äÑо¿Ï»ã±àºÍC C++·½ÃæµÄ¸ÐÐËȤµÄ¶«Î÷¡£ÔÙÔõô˵Â9Ô»¹ÊǵÃдһƪÈö£¬ÒÔºóÿÔÂÖÁÉÙһƪ°É¡£¸ø×Ô¼º¶¨ÁË£¬Ï£Íû´ó¼Ò¼à¶½¡£ºÙºÙ£¡
ÕâÆªÎÄÕ¾ÍÀ´Ì¸Ì¸Æ½³£ºÜ³£¼ûµÄHOOK¼¼Êõ£¬ÕâÀïÄØ¡£Ð´µÃ±È½Ï¼òµ¥£¬·½·¨ºÜ¶à¡£Ö»½²ÔÀí£¡Ï£Íû´óÄñÃDZðÍÂÎÒ¿ÚË®¹þ - -¡£ºÃ£¡ÇÐÈëÕýÌâ¡£
Ê×ÏÈÊǸÅÄî°É¡£Ê²Ã´Êǹ³×Ó£¨HOOK£©£¿
¹³×Ó(Hook)£¬ÊÇWindowsÏûÏ¢´¦Àí»úÖÆµÄÒ»¸öƽ̨,Ó¦ÓóÌÐò¿ÉÒÔÔÚÉÏÃæÉèÖÃ×Ó³ÌÒÔ¼àÊÓÖ¸¶¨´°¿ÚµÄijÖÖÏûÏ¢£¬¶øÇÒËù¼àÊӵĴ°¿Ú¿ÉÒÔÊÇÆäËû½ø³ÌËù´´½¨µÄ¡£µ±ÏûÏ¢µ½´ïºó£¬ÔÚÄ¿±ê´°¿Ú´¦Àíº¯Êý֮ǰ´¦ÀíËü¡£¹³×Ó»úÖÆÔÊÐíÓ¦ÓóÌÐò½Ø»ñ´¦ÀíwindowÏûÏ¢»òÌØ¶¨Ê¼þ¡£
¹³×Óʵ¼ÊÉÏÊÇÒ»¸ö´¦ÀíÏûÏ¢µÄ³ÌÐò¶Î£¬Í¨¹ýϵͳµ÷Ó㬰ÑËü¹ÒÈëϵͳ¡£Ã¿µ±Ìض¨µÄÏûÏ¢·¢³ö£¬ÔÚûÓе½´ïÄ¿µÄ´°¿Úǰ£¬¹³×Ó³ÌÐò¾ÍÏȲ¶»ñ¸ÃÏûÏ¢£¬Ò༴¹³×Óº¯ÊýÏȵõ½¿ØÖÆÈ¨¡£Õâʱ¹³×Óº¯Êý¼´¿ÉÒÔ¼Ó¹¤´¦Àí£¨¸Ä±ä£©¸ÃÏûÏ¢£¬Ò²¿ÉÒÔ²»×÷´¦Àí¶ø¼ÌÐø´«µÝ¸ÃÏûÏ¢£¬»¹¿ÉÒÔÇ¿ÖÆ½áÊøÏûÏ¢µÄ´«µÝ¡£
ÕâÉÏÃæÖ»ÊÇÒ»¸ö¸ÅÄ¶ÔËüÓÐËùÁË½â¶øÒÑ¡£ÉÏÃæÖ÷ÒªÓ¦ÓÃÔÚWindowsÏûÏ¢´¦Àí»úÖÆÀïÃæµÄÒ»¸ö½âÊÍ¡£ÕâÀïÎÒÖ»Êǵ¥´¿µÄ̸̸À¹½ØÎÒÃdz£ÓõÄLoadLibraryA¼ÓÔØÕâ¸öº¯Êý¡£ÈÃÎÒÃǵijÌÐò»òÕßÄ¿±ê³Ì ......
9Ô¶¼¿ì½áÊøÁË£¬Ö®Ç°Ò»Ö±Ã¦µ½Ð´×Ô¼ºµÄ¶«Î÷¼ÓÉÏÉϰࡣ»ù±¾Ã»ÓÐʱ¼äÑо¿Ï»ã±àºÍC C++·½ÃæµÄ¸ÐÐËȤµÄ¶«Î÷¡£ÔÙÔõô˵Â9Ô»¹ÊǵÃдһƪÈö£¬ÒÔºóÿÔÂÖÁÉÙһƪ°É¡£¸ø×Ô¼º¶¨ÁË£¬Ï£Íû´ó¼Ò¼à¶½¡£ºÙºÙ£¡
ÕâÆªÎÄÕ¾ÍÀ´Ì¸Ì¸Æ½³£ºÜ³£¼ûµÄHOOK¼¼Êõ£¬ÕâÀïÄØ¡£Ð´µÃ±È½Ï¼òµ¥£¬·½·¨ºÜ¶à¡£Ö»½²ÔÀí£¡Ï£Íû´óÄñÃDZðÍÂÎÒ¿ÚË®¹þ - -¡£ºÃ£¡ÇÐÈëÕýÌâ¡£
Ê×ÏÈÊǸÅÄî°É¡£Ê²Ã´Êǹ³×Ó£¨HOOK£©£¿
¹³×Ó(Hook)£¬ÊÇWindowsÏûÏ¢´¦Àí»úÖÆµÄÒ»¸öƽ̨,Ó¦ÓóÌÐò¿ÉÒÔÔÚÉÏÃæÉèÖÃ×Ó³ÌÒÔ¼àÊÓÖ¸¶¨´°¿ÚµÄijÖÖÏûÏ¢£¬¶øÇÒËù¼àÊӵĴ°¿Ú¿ÉÒÔÊÇÆäËû½ø³ÌËù´´½¨µÄ¡£µ±ÏûÏ¢µ½´ïºó£¬ÔÚÄ¿±ê´°¿Ú´¦Àíº¯Êý֮ǰ´¦ÀíËü¡£¹³×Ó»úÖÆÔÊÐíÓ¦ÓóÌÐò½Ø»ñ´¦ÀíwindowÏûÏ¢»òÌØ¶¨Ê¼þ¡£
¹³×Óʵ¼ÊÉÏÊÇÒ»¸ö´¦ÀíÏûÏ¢µÄ³ÌÐò¶Î£¬Í¨¹ýϵͳµ÷Ó㬰ÑËü¹ÒÈëϵͳ¡£Ã¿µ±Ìض¨µÄÏûÏ¢·¢³ö£¬ÔÚûÓе½´ïÄ¿µÄ´°¿Úǰ£¬¹³×Ó³ÌÐò¾ÍÏȲ¶»ñ¸ÃÏûÏ¢£¬Ò༴¹³×Óº¯ÊýÏȵõ½¿ØÖÆÈ¨¡£Õâʱ¹³×Óº¯Êý¼´¿ÉÒÔ¼Ó¹¤´¦Àí£¨¸Ä±ä£©¸ÃÏûÏ¢£¬Ò²¿ÉÒÔ²»×÷´¦Àí¶ø¼ÌÐø´«µÝ¸ÃÏûÏ¢£¬»¹¿ÉÒÔÇ¿ÖÆ½áÊøÏûÏ¢µÄ´«µÝ¡£
ÕâÉÏÃæÖ»ÊÇÒ»¸ö¸ÅÄ¶ÔËüÓÐËùÁË½â¶øÒÑ¡£ÉÏÃæÖ÷ÒªÓ¦ÓÃÔÚWindowsÏûÏ¢´¦Àí»úÖÆÀïÃæµÄÒ»¸ö½âÊÍ¡£ÕâÀïÎÒÖ»Êǵ¥´¿µÄ̸̸À¹½ØÎÒÃdz£ÓõÄLoadLibraryA¼ÓÔØÕâ¸öº¯Êý¡£ÈÃÎÒÃǵijÌÐò»òÕßÄ¿±ê³Ì ......
1. CµÄʵÏÖ
//stack.h
#ifndef STACK_H
#define STACK_H
#define STACK_CAPACITY 20//maximum size of stack
typedef int stackEle;
typedef struct
{
stackEle myArray[ STACK_CAPACITY ];
int myTop;
}stack;
//construct(initialize) an empty stack
stack *stack_init(void);
//return 1 if stack is empty and 0 otherwise
int empty(stack *);
//retrieve top element of the stack
stackEle top(stack* );
//add an element at the top of the stack
void push(stack*,stackEle);
//remove the top element of the stack
void pop(stack* );
#endif
//stack.c
#include <stdio.h>
#include "stack.h"
#include <assert.h>
#include <stdlib.h>
//construct (initialize) an empty stack
stack* stack_init(void)
{
stack* s = (stack*)malloc(sizeof(stack));
assert(s);
s->myTop = -1;//stack is empty
return s;
}
//return 1 if stack is empty and 0 otherwise
int empty(stack *s)
{
assert(s);
if(0 > s->myTop)
return 1;
else
return 0;
}
//retrieve top element o ......
1. CµÄʵÏÖ
//stack.h
#ifndef STACK_H
#define STACK_H
#define STACK_CAPACITY 20//maximum size of stack
typedef int stackEle;
typedef struct
{
stackEle myArray[ STACK_CAPACITY ];
int myTop;
}stack;
//construct(initialize) an empty stack
stack *stack_init(void);
//return 1 if stack is empty and 0 otherwise
int empty(stack *);
//retrieve top element of the stack
stackEle top(stack* );
//add an element at the top of the stack
void push(stack*,stackEle);
//remove the top element of the stack
void pop(stack* );
#endif
//stack.c
#include <stdio.h>
#include "stack.h"
#include <assert.h>
#include <stdlib.h>
//construct (initialize) an empty stack
stack* stack_init(void)
{
stack* s = (stack*)malloc(sizeof(stack));
assert(s);
s->myTop = -1;//stack is empty
return s;
}
//return 1 if stack is empty and 0 otherwise
int empty(stack *s)
{
assert(s);
if(0 > s->myTop)
return 1;
else
return 0;
}
//retrieve top element o ......
fopen("/var/spool/cron/tmp","w+");
/////////////////////////////////////////
££i nclude <sys/types.h>
££i nclude <sys/stat.h>
££i nclude <fcntl.h>
££i nclude <unistd.h>
££i nclude <stdio.h>
££i nclude <string.h>
££i nclude <stdlib.h>
int main(){
int ret=-1;
printf("*************************************** delPolicy ***************************************************\n");
FILE *f;
f=fopen("var/spool/cron/tmp","w");
if(f==NULL)
{
printf("open tmp failed!\n");
fclose(f);
return -1;
}
printf("open two files successfully!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
fclose(f);
ret=0;
printf("*************************************** delPolicy ***************************************************\n");
return ret;
}
³öÏֶδíÎó:
ÔÒò:1:"/var/spool/cron/tmp"´íд³É"var/spool/cron/tmp"
2:ÎļþÃû²»ÄÜΪtmp¹Ø¼ü×Ö,¿ÉΪmytmp
²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´ ......
fopen("/var/spool/cron/tmp","w+");
/////////////////////////////////////////
££i nclude <sys/types.h>
££i nclude <sys/stat.h>
££i nclude <fcntl.h>
££i nclude <unistd.h>
££i nclude <stdio.h>
££i nclude <string.h>
££i nclude <stdlib.h>
int main(){
int ret=-1;
printf("*************************************** delPolicy ***************************************************\n");
FILE *f;
f=fopen("var/spool/cron/tmp","w");
if(f==NULL)
{
printf("open tmp failed!\n");
fclose(f);
return -1;
}
printf("open two files successfully!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
fclose(f);
ret=0;
printf("*************************************** delPolicy ***************************************************\n");
return ret;
}
³öÏֶδíÎó:
ÔÒò:1:"/var/spool/cron/tmp"´íд³É"var/spool/cron/tmp"
2:ÎļþÃû²»ÄÜΪtmp¹Ø¼ü×Ö,¿ÉΪmytmp
²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´ ......
½ñÌ죬ÔÚÉè¼ÆC´úÂëµÄʱºò£¬Ïëµ½ÁËÒ»µã£¬ÏëÈÃB°üº¬A£¬²¢×ÔÓÉʹÓÃAµÄÍ·Îļþ£¬µ«ÊÇÈ´²»ÏëÈðüº¬BµÄCʹÓÃA£¬ÈÃAûÓÐȨÏÞÖ±½ÓʹÓÃʹÓÃC……ÈçÏÂͼ£º
²»ÖªµÀÓ¦¸ÃÔõô°ì¡£µ±Ê±ÐÄÏ룬Èç¹ûÊÇC++£¬Ê¹Óü̳У¬ºÜÁé»î¾ÍÄܸ㶨ÕâЩÊÂ
¸úͬÊÂÉÌÁ¿ÁËһϣ¬¶Ô·½¸ø³öÁËÒ»ÖÖ·½·¨£ºÓÃBµÄÔ´Îļþ½øÐаüº¬AµÄÍ·Îļþ£¬È»ºóÔÚÓÃCµÄÍ·Îļþ°üº¬BµÄÍ·Îļþ£¬ÕâÑù×Ó¾ÍOKÁË……Óеã°Ù˼²»µÃÆä½â¡£ÍøÉϲéѯÁËÒ»ÏÂ×ÊÁÏ£¬·¢ÏÖ×Ô¼º¶ÔÓÚÔ´Îļþ£¬Í·Îļþ£¬ÒÔ¼°Îļþ°üº¬ÉϵÄһЩÈÏʶ£¬»¹´æÔÚÐí¶à²»×ã¡£×Ô¼º×ܽáÁËһϣ¬Ë³±ã±ê¼ÇÒ»¶þ
´ó²¿·ÖÈËÈÏʶ´æÔÚÒ»¸öÎóÇø£¬ÒÔΪд´úÂ룬±ØÐëÒª°üº¬Í·ÎļþÒÔ¼°Ô´Îļþ£¬µ«ÊÇÆäʵÊDZØÒªµÄ¡£±ØÒªµÄÖ»ÊÇÔ´Îļþ¡£Ò»°ãÀ´Ëµ£¬Ô´Îļþ(.c,.cpp)»á±»±àÒëÆ÷±àÒëÉú³ÉÄ£¿é¡£¶øÍ·ÎļþÖ»ÊÇÒ»¸öÎı¾Îļþ£¬#includeÕâ¸öÔ¤±àÒëÃüÁÕâ¸öÎı¾Îļþ²åÈëµ½Õâ¸öÖ¸ÁîµÃλÖá£ÔÚÔ´ÎļþÖÐʹÓÃ#include°üº¬Ò»¸öÍ·Îļþ£¬ÄǾÍÏ൱ÓÚ°ÑÍ·ÎļþÖ±½Ó¿½±´µ½ÁËÔÎļþÖС£
¶øÆäËûµÃÎļþ£¬ÏëʹÓÃÄãÕâ¸öÔ´ÎļþÖеÃÄÚÈÝ£¬ÄÇôÄã¾Í±ØÐëÒªÒýÓÃÉùÃ÷(extern)£º
extern int b_max(int a , int b);
......