Linux LDDÃüÁîµÄʹÓÃ
1.Ê×ÏÈldd²»ÊÇÒ»¸ö¿ÉÖ´ÐгÌÐò£¬¶øÖ»ÊÇÒ»¸öshell½Å±¾
2¡¢lddÄܹ»ÏÔʾ¿ÉÖ´ÐÐÄ£¿éµÄdependency£¬ÆäÔÀíÊÇͨ¹ýÉèÖÃһϵÁеĻ·¾³±äÁ¿£¬ÈçÏ£ºLD_TRACE_LOADED_OBJECTS¡¢LD_WARN¡¢LD_BIND_NOW¡¢LD_LIBRARY_VERSION¡¢
LD_VERBOSEµÈ¡£µ±LD_TRACE_LOADED_OBJECTS»·¾³±äÁ¿²»Îª¿Õʱ£¬ÈκοÉÖ´ÐгÌÐòÔÚÔËÐÐʱ£¬Ëü¶¼»áÖ»ÏÔʾģ¿éµÄ
dependency£¬¶ø³ÌÐò²¢²»ÕæÕýÖ´ÐС£Òª²»Äã¿ÉÒÔÔÚshellÖն˲âÊÔһϣ¬ÈçÏ£º
(1) export
LD_TRACE_LOADED_OBJECTS=1
(2) ÔÙÖ´ÐÐÈκεijÌÐò£¬ÈçlsµÈ£¬¿´¿´³ÌÐòµÄÔËÐнá¹û
3¡¢lddÏÔʾ¿ÉÖ´ÐÐÄ£¿éµÄdependencyµÄ¹¤×÷ÔÀí£¬ÆäʵÖÊÊÇͨ¹ýld-linux.so£¨elf¶¯Ì¬¿âµÄ×°ÔØ
Æ÷£©À´ÊµÏֵġ£ÎÒÃÇÖªµÀ£¬ld-linux.soÄ£¿é»áÏÈÓÚexecutableÄ£¿é³ÌÐò¹¤×÷£¬²¢»ñµÃ¿ØÖÆÈ¨£¬Òò´Ëµ±ÉÏÊöµÄÄÇЩ»·¾³±äÁ¿±»ÉèÖÃʱ£¬ld-linux.soÑ¡ÔñÁËÏÔʾ¿ÉÖ´ÐÐÄ£¿éµÄdependency¡£
4¡¢Êµ¼ÊÉÏ¿ÉÒÔÖ±½ÓÖ´ÐÐld-linux.soÄ£¿é£¬È磺/lib/ld-linux.so.2 --list
program£¨ÕâÏ൱ÓÚldd program£©
lddÃüÁîʹÓ÷½·¨(Õª×Ôldd --help)
Ãû³Æ ldd - ´òÓ¡¹²Ïí¿âµÄÒÀÀµ¹ØÏµ
´ó¸Ù ldd [Ñ¡Ïî]...¡¡Îļþ...
ÃèÊö ldd Êä³öÔÚÃüÁîÐÐÉÏÖ¸¶¨µÄÿ¸ö³ÌÐò»ò¹²Ïí¿âÐèÒªµÄ¹²Ïí¿â¡£
Ñ¡Ïî
--version
´òÓ¡lddµÄ°æ±¾ºÅ
-v --verbose
´òÓ¡ËùÓÐÐÅÏ¢£¬ÀýÈç°üÀ¨·ûºÅµÄ°æ±¾ÐÅÏ¢
-d --data-relocs
Ö´ÐзûºÅÖØ²¿Ê𣬲¢±¨¸æÈ±ÉÙµÄÄ¿±ê¶ÔÏó£¨Ö»¶ÔELF¸ñʽÊÊÓã©
-r --function-relocs
¶ÔÄ¿±ê¶ÔÏóºÍº¯ÊýÖ´ÐÐÖØÐ²¿Ê𣬲¢±¨¸æÈ±ÉÙµÄÄ¿±ê¶ÔÏóºÍº¯Êý£¨Ö»¶ÔELF¸ñʽÊÊÓã©
--help Ó÷¨ÐÅÏ¢
×¢Òâ:
lddµÄ±ê×¼°æ±¾Óëglibc2Ò»ÆðÌṩ¡£Libc5ÓëÀϰ汾ÒÔǰÌṩ£¬ÔÚһЩϵͳÖл¹´æÔÚ¡£ÔÚlibc5°æ±¾Öг¤Ñ¡Ïî²»Ö§³Ö¡£ÁíÒ»·½Ã棬glibc2°æ±¾²»Ö§³Ö-VÑ¡ÏֻÌṩµÈ¼ÛµÄ--versionÑ¡Ïî¡£
Èç¹ûÃüÁîÐÐÖиø¶¨µÄ¿âÃû×Ö°üº¬'/'£¬Õâ¸ö³ÌÐòµÄlibc5°æ±¾½«Ê¹ÓÃËü×÷Ϊ¿âÃû×Ö£»·ñÔòËü½«ÔÚ±ê׼λÖÃËÑË÷¿â¡£ÔËÐÐÒ»¸öµ±Ç°Ä¿Â¼ÏµĹ²Ïí¿â£¬¼Óǰ׺"./"¡£
´íÎó:
ldd²»Äܹ¤×÷ÔÚa.out¸ñʽµÄ¹²Ïí¿âÉÏ¡£
ldd²»Äܹ¤×÷ÔÚһЩ·Ç³£ÀϵÄa.out³ÌÐòÉÏ£¬ÕâЩ³ÌÐòÔÚÖ§³ÖlddµÄ±àÒëÆ÷·¢ÐÐǰÒѾ´´½¨¡£Èç¹ûÄãÔÚÕâÖÖÀàÐ͵ijÌÐòÉÏʹÓÃldd£¬³ÌÐò½«³¢ÊÔargc
= 0µÄÔËÐз½Ê½£¬Æä½á¹û²»¿ÉÔ¤Öª¡£
Ïà¹ØÎĵµ£º
#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <signal.h>
using namespace std;
extern char **environ;
void signal_handle(int signal_no){
cout << "sign:" &l ......
ʱ¼ä¼ä¸ô¶¨Ê±Æ÷
interval timer(ʱ¼ä¼ä¸ô¶¨Ê±Æ÷)ϵͳµ÷ÓÃ×Ô´Ó±»POSIX±ê×¼»¯ºó£¬Ê״γöÏÖÓÚ4.2BSD£¬Äܹ»Ìṩ±Èalarm()»¹¶àµÄ¿ØÖÆ£º
#include <sys/time.h>
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
interval ti ......
ÕâÁ½Ìì´î½¨ÁËÒ»×éApache·þÎñÆ÷£¬Ã¿Ì¨·þÎñÆ÷4GÄڴ棬²ÉÓõÄÊÇpreforkģʽ£¬Ò»¿ªÊ¼ÉèÖõÄÁ¬½ÓÊýÌ«ÉÙÁË£¬ÐèÒª½Ï³¤µÄʱ¼äÈ¥ÏìÓ¦Óû§µÄÇëÇ󣬺óÀ´ÐÞ¸ÄÁËÒ»ÏÂApache 2.0.59µÄÅäÖÃÎļþhttpd.conf£º
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes ......
´¦ÀíÆ÷µÄ·ÖÀ࣬ÈçÏÂͼËùʾ£º
´æ´¢Æ÷¿É·ÖΪֻ¶Á´æ´¢Æ÷£¨ROM£©¡¢ÉÁ´æ£¨Flash£©¡¢Ëæ»ú´æÈ¡´æ´¢Æ÷£¨RAM£©¡¢¹â½éÖÊ´æ´¢Æ÷ºÍ´Å½éÖÊ´æ´¢Æ÷
Nor FlashºÍcpuµÄ½Ó¿ÚÊôÓÚµäÐ͵ÄÀàSRAM½Ó¿Ú£¬²»ÐèÒªÔö¼Ó¶îÍâµÄ¿ØÖƵç·¡£Nor FlashµÄÌØµãÊÇ¿ÉоƬÄÚÖ´ÐУ¬³ÌÐò¿ÉÒÔÖ±½ÓÔÚNorÄÚÔËÐС£¶øNand FashºÍcpuµÄ½Ó¿Ú±ØÐëÓÉÏàÓ¦µÄ¿ØÖƵç·½øÐÐת»»£ ......
1.´´½¨Ä¿Â¼
mkdir [-p][--help][--version][-m <Ŀ¼ÊôÐÔ>][Ŀ¼Ãû³Æ]
-m¿ÉÒÔ¶ÔĿ¼ÉèÖôæÈ¡È¨ÏÞ,Ò²¿ÉÒÔÓÃchmodeÃüÁîÉèÖÃ,
-p ¿ÉÒÔÊÇÒ»¸ö·¾¶Ãû³Æ,Èç¹û·¾¶ÖÐÓÐЩĿ¼²»´æÔÚ,ÄÇô»á×Ô¶¯´´½¨
2.ɾ³ý¿ÕĿ¼
Óï¡¡¡¡·¨£ºrmdir [-p][--hel ......