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

¸ß¼¶Linux³ÌÐòÉè¼ÆµÚÒ»Õ£ºÈëÃÅ

1¡¢ÓÃGCC±àÒë
1.1¡¢´´½¨Ô´Îļþ
(main.c) C Ô´Îļþ - main.c
#include
#include “reciprocal.hpp”
int main (int argc, char **argv)
{
    int i;
    i = atoi (argv[1]);
    printf (“The reciprocal of %d is %g\n”, i, reciprocal (i));
    return 0;
}
(reciprocal.cpp) C++ Ô´Îļþ - reciprocal.cpp
#include
#include “reciprocal.hpp”
double reciprocal (int i) {
    // I should be non-zero.
    assert (i != 0);
    return 1.0/i;
}
(reciprocal.hpp) Í·Îļþ - reciprocal.hpp
#ifdef __cplusplus
    extern “C” {
#endif
    extern double reciprocal (int i);
#ifdef __cplusplus
    }
#endif
1.2¡¢±àÒëÔ´Îļþ
±àÒëmain.c:
% gcc -c main.c
±àÒëreciprocal.cpp:
% g++ -c reciprocal.cpp
²ÎÊý-IÖ¸¶¨ËÑË÷Í·ÎļþµÄλÖá£
ĬÈÏÇé¿öÏ£¬GCCÔÚµ±Ç°Îļþ¼Ð¼°±ê×¼¿âµÄÍ·ÎļþËùÔÚµÄÎļþ¼ÐÀ´ËÑË÷Í·Îļþ¡£
% g++ -c -I ../include reciprocal.cpp
¿ÉÒÔÓòÎÊý-DÔÚÃüÁîÐÐÉ趨ºê(macro)£¬²¢ÇÒ¿ÉÒÔÉ趨ºêµÄÖµ
¶ÔÓÚÈçϳÌÐòdefinemacro.c:
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char** argv){
        int i = 3;
#ifdef CHANGEVALUE
        i = 4;
#endif
        printf("i = %d\n", i);
        printf("PT = %f\n", PI);
}
Èç¹û±àÒëʱÃüÁîÐÐΪgcc definemacro.c£¬»á±¨‘PI’ undeclared´íÎó¡£
Èç¹û±àÒëʱÃüÁîÐÐΪgcc -D PI=3.14 definemacro.c£¬ÔòÊä³öÈçÏ£º
i = 3
PT = 3.140000
Èç¹û±àÒëʱÃüÁîÐÐΪgcc -D PI=3.14 -D CHANGEVALUE definemacro.c£¬ÔòÊä³öÈçÏ£º
i = 4
PT = 3.140000
¿ÉÒÔÓÃGCC±àÒëʱÓÅ»¯´úÂë.
% g++ -c -O2 reciprocal.cpp
1.3¡¢Á´½Ó¶ÔÏóÎļþ
g++¿ÉÒÔ½«.o¶ÔÏóÎļþÁ´½Ó³É³ÌÐò
% g++ -o reciprocal main.o reciprocal.o
Èç¹ûÏëÁ´½ÓÆäËû¿âÎļþ£¬ÔòÓòÎÊý-I
ÀýÈçÓûÁ´½Ó¿âlibpam.a£¬ÔòÓÃÈçÏÂÃüÁîÐУ¬±àÒëÆ÷»á×Ô¶¯¼ÓÉÏǰ׺libºÍºó׺.a
% g++ -o reciprocal mai


Ïà¹ØÎĵµ£º

Linux device driver 3 ±Ê¼Ç Ö® ÄÚ´æÓ³Éä

½ñÌì×Ô¼ºÑ§Ï° LinuxÉ豸Çý¶¯³ÌÐò µÚÈý°æ µÚ15Õ ÄÚ´æÓ³ÉäºÍDMA. ¸Ð¾õÓеã³ÔÁ¦¡£Ö÷ÒªÊǶÔÄÚ´æÓ³ÉäºÜ¶àÊõÓïºÍ¸ÅÄî²»ÊǺÜÇå³þ£¬Àí½âÆðÀ´Óеã·Ñ¾¢¡£
ºóÀ´½áºÏÓ¢ÎÄÔ­°æ£¬¾²ÏÂÐÄÀ´×Ðϸѧϰ£¬²ÅËãÊÇÓÐÁËÒ»µã½øÕ¹¡£
ÏÖÔÚÔÚÕâÀï×öÒ»¸ö±Ê¼Ç£¬ÒÔ±¸ÒÔºó¸´Ï°Óá£
µÍ¶ËÄÚ´æºÍ¸ß¶ËÄÚ´æ
ÊéÖеÄͼ15-1ÓеãÎóµ¼ÈË¡£Í¼Öн« ÄÚºËÐéÄâµØÖ· ºÍ ......

LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º


LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º liukang@bjut.edu.cn
slab.cÀ´×ÔlinuxÄÚºË2.4.22°æ£¬±¾Îļþ°´ÕÕGNUЭÒé·¢²¼¡£
Ò»¡¢×¼±¸ÖªÊ¶£º
slabµÄ¸ÅÄ
Ìá³öµÄÔ­Òò£ºÓÉÓÚ²Ù×÷ϵͳÔÚÔËÐÐÖл᲻¶Ï²úÉú¡¢Ê¹Óá¢ÊÍ·Å´óÁ¿Öظ´µÄ¶ÔÏó£¬
ËùÒÔ¶ÔÕâÑùµÄÖØ¸´¶ÔÏóµÄÉú³É½øÐиĽø¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
×îÔçÓÉsunµÄ¹¤³ÌʦÌá³ö(1994Äê)²¢Ê×ÏÈÔ ......

Linux x86 Dropbear SSH <= 0.34 remote root exploit

/*
* /*
* Linux x86 Dropbear SSH <= 0.34 remote root exploit
* coded by live
*
* You'll need a hacked ssh client to try this out. I included a patch
* to openssh-3.6.p1 somewhere below this comment.
*
* The point is: the buffer being exploited is too small(25 bytes) to hold our
......

Linux ̽Ë÷

ת£ºhttp://www.nounix.com/linux-explore-the-legend-of-the-beginning-of-the-first-act-14577/
<Linux ̽Ë÷>
µÄÄ¿µÄÊǰïÖúÄúÈÏʶLinux Õâ¸ö²©´ó¾«ÉîµÄ²Ù×÷ϵͳ²úÆ·£¬Èç¹ûÄú´ø×ÅÏë³ÉΪר¼Ò»òÕß¶¥¼âLinux ÈËÎïÀ´¿´±¾Îĵϰ£¬Äú¿Ï¶¨ÒªÊ§ÍûÁË¡£ÒòΪÎÒ×Ô¼ºÒ²»¹ÊÇLinux µÄ³õѧÕߣ¬ÔõôÄܹ»Ð´³öÈÃÄú³ÉΪ¸ßÊÖµÄÎÄÕ£¿£¨Ð ......

Ò»¸öLinuxÏÂCÏ̳߳صÄʵÏÖ

ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ