Ç°ÃæÒ»ÆªÎÄÕ½²½âÁË¡¶UNIX»·¾³¸ß¼¶±à³Ì¡·Ô´Âë±àÒë·½·¨¡£ÎÄÖÐËù½²µ½µÄ±àÒë·½·¨ÊÇ·Ç×÷ÕßÌṩµÄ±àÒë·½·¨£¬¼´²»Ê¹ÓÃ×÷ÕßÌṩµÄÍ·Îļþ£¬³ÌÐòÖÐËùÓÐʹÓõÄÍ·Îļþ¶¼Ò»Ò»Áгö¡£¶ø³ÌÐòÖеijö´í´¦Àíº¯ÊýÔò¼òµ¥µÄÓÃprintfº¯ÊýÌæ´ú¡£
Ëæºó£¬Ò²ÓÐÍøÓÑÌá³öÈçºÎ²ÉÓÃ×÷Õߵķ½·¨À´¶ÔËùÓеijÌÐò½øÐбàÒë¡£³öÓÚ½â¾öÎÊÌ⣬ͬʱҲÏëʵÏÖÕâ¸ö·½·¨£¬±Ï¾¹ÊµÏÖÖ®ºóÿ¸ö³ÌÐò¶¼¿ÉÒÔÖ±½ÓÔËÐУ¬»¹ÊDZȽϷ½±ãµÄ¡£Òò´Ë£¬¾Í°´ÕÕÔ´´úÂëÎļþ¼ÐÖеÄREADMEµÄ²½Ö裬¶ÔÕû¸öÔ´´úÂë½øÐÐÁ˱àÒë¡£
£¨Ò»£©×÷ÕßÌṩµÄ±àÒë·½·¨µÄʵÏÖ
READMEÎļþÖиø³öµÄ±àÒë·½·¨ÈçÏ£º
To build the
source, edit the Make.defines.* file for your system and set WKDIR to the
pathname of the tree containing the source code. Then just run "make". It should figure out the system type and
build the source for that platform utomatically.
²ÎÕո÷½·¨£¬ÎÒ½«Ô´ÂëµÄ±àÒë·ÖΪÈý²½¡£Õû¸ö²½Öè¶¼ÊÇÔÚroot³¬¼¶Óû§Ï½øÐеģ¬Èç¹ûÆäËûÓû§Ã»ÓÐȨÏÞ½øÐбàÒ룬¿ÉÒÔͨ¹ýsuÃüÁîÇл»µ½³¬¼¶Óû§¡£
µÚÒ»²½£¬±à¼Make.defines.*Îļþ¡£ÓÉÓÚÎÒËùʹÓõIJÙ×÷ϵͳÊÇFreeBSD6.1£¬ËùÒÔÓ¦¸Ã±à¼ÎļþMake.defines.freebsd¡£Æäʵ£¬±à¼¸ÃÎļþµÄÄÚÈÝÖ÷ÒªÊÇÐÞ¸ÄÆäÖеÄWKDIR£¬¼´ÎÒÃÇÔ´ÂëËùÔÚÎļþ¼ÐµÄ¾ø¶Ô·¾¶Ãû¡£ÔÎļþÖÐWKDIR£½/home/sar/apue.2e£¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÎÒÃÇʵ¼ÊÎļþ¼ÐËùÔÚµÄλÖýøÐÐÏàÓ¦µÄÐ޸ġ£ÎÒµÄapue.2eÎļþ¼ÐÖ±½Ó·ÅÔÚ/homeÏÂÁË£¬ËùÒÔÎÒ½«WKDIRÐÞ¸ÄΪWKDIR£½/home/apue.2e¡£ÆäÓàÄÚÈݲ»ÓÃÐ޸쬱£´æÐ޸ĺóµÄÎļþ¡£
µÚ¶þ²½£¬Ð޸Ľű¾Îļþsystype.shµÄȨÏÞ¡£ÓÉÓÚÔʼµÄsystype.shÎļþ²»¾ßÓпÉÖ´ÐеÄȨÏÞ¡£Í¨¹ýÖ´ÐÐÃüÁî:
#chmod +x systype.sh
¸øµ±Ç°Óû§¼°ÆäËùÔÚ×éºÍÆäËû×éÌí¼Ó¿ÉÖ´ÐÐȨÏÞ£»
»òÕß
#chmod u+x systype.sh
½ö¸øµ±Ç°Óû§Ìí¼Ó¿ÉÖ´ÐÐȨÏÞ¡£
¸Ã½Å±¾ÎļþµÄ¹¦ÄÜÖ÷ÒªÊǼì²â²Ù×÷ϵͳµÄÀàÐÍ¡£Ëü¿ÉÒÔ¼ì²âµ½ÏµÍ³µÄÀàÐÍÓУºFreeBSD£¬Linux£¬MacOSºÍSolarisµÈ¡£Èç¹ûµ¥¶ÀÖ´ÐÐÕâ¸öshell½Å±¾£º
££./systype.sh
ÔòÊä³ö½á¹ûΪ£ºfreebsd¡£¼´¼ì²â±¾»úµÄ²Ù×÷ϵͳΪFreeBSD¡£
µÚÈý²½£¬½øÐÐÔ´ÂëµÄ±àÒë¡£ÔÚÃüÁîÐÐÏÂÖ´ÐÐmakeÃüÁͨ¹ý²é¿´MakefileÎļþ¿ÉÖª£¬makeÖ®ºó£¬Ê×ÏÈÖ´ÐÐsystype.sh½Å±¾£¬¼´Ê×ÏÈÈ·¶¨²Ù×÷ϵͳµÄÀàÐÍ£¬È»ºóÔÚ½øÐÐÔ´ÂëµÄ±àÒë¡£ÔÚ±àÒëµÄ¹ý³ÌÖУ¬»áÓÐһЩWarning¡£ÕâЩ¶¼ÊÇÕý³£µÄ£¬µ¼Ö¾¯¸æµÄÔÒò¿ÉÄÜÊDzÉÓñàÒëÆðµÄ°æ±¾²»Í¬»òÕßÊÇͬһÀàÐͲÙ×÷ϵͳµÄ°æ±¾²»Í¬¡£µ«ÊÇ£¬Ö»ÒªmakeµÄ¹ý³Ì²»³öÏÖerror£¬¾Í»á˳ÀûµÄÉú³É¿ÉÖ´ÐÐÎļþ¡£ÎÒµÄÔÚ±àÒë¹ý³ÌÖÐûÓгöÏÖerror£¬Òò´ËÒâζ×űàÒë³É¹¦¡£
×¢Ò⣺±àÒëµÄ¹ý³ÌÖпÉÄÜ»á³öÏÖµÄÒ»¸öÎÊÌ⣬ҲÊÇÒ»¸öÍøÓÑÔø¾Îʵ½µÄÎÊÌ⣬¾ÍÊÇÔÚ±àÒëÖгöÏÖÕâ¸öµÄ´íÎó£¬Ìáʾnawk command cannot be found¡£Õâ¸öÎÊÌâ¿ÉÄܵÄÔÒòÊÇ£¬ÓÐЩ²Ù×÷ϵͳµÄÄں˰汾½ÏµÍ£¬¿ÉÄÜ»¹²»Ö§³Önawk(new awk)Õâ¸öÃüÁî¡£µ«Ó¦¸ÃÖ§³ÖawkÃüÁî¡£Òò´Ë£¬ÎÊÌâµÄ½â¾ö·½·¨¾ÍÊǽ«Ïà¹ØÎļþÖеÄnawkÃüÁîÌæ»»Îªawk£¬»òÕßΪϵͳÌí¼ÓÒ»¸ö±ðÃûalias£¬alias nawk awk¡£ÕâÑùÔÚ±àÒ»µÄ¹ý³ÌÖУ¬Óöµ½nawkÃüÁîʱ£¬Êµ¼Ê»áÈ¥Ö´ÐÐawkÃüÁî¡£Èç¹û»¹ÓÐÆäËûÎÊÌ⣬¿ÉÒÔÈ¥ÍøÉÏËÑË÷Ïà¹ØµÄ½â¾ö·½·¨¡£ÒòΪÎÒÔÚ±àÒëµÄ¹ý³ÌÖÐûÓÐÓöµ½ÕâÑùµÄÎÊÌ⣬²»ÔÙһһ׸Êö¡£
£¨¶þ£©±àÒëÉú³É¿ÉÖ´ÐÐÎļþµÄλÖÃ
ÔÚ·¾¶/home/apue.2e/ÏÂËäÈ»ÓÐËùÓеÄÔ´Îļþ£¬¶¼ÊÇÒÔfigx.xµÄÐÎʽÃüÃû¡£µ«ÊÇʵ¼Ê±àÒëµÄ¹ý³Ì²¢²»ÊDZàÒëµÄÕâЩÎļþ¡£¶øÊDZàÒëÔڸ÷¾¶Ï¸÷¸öÎļþ¼ÐÖеĺó׺ÃûΪ£ª.cµÄ³ÌÐò¡£×÷Õß°ÑͬһÕ½ڻòÕßÏà½ü¼¸¸öÕ½ڵÄÔ´´úÂë·ÅÔÚijһ¸öÎļþ¼ÐÏÂÃæ£¨includeºÍlibÎļþ¼Ð³ýÍ⣩¡£¶øÎļþ¼ÐµÄÃüÃûÒ»°ãÊǺ͸ÃÕ¶ÔÓ¦µÄ±êÌâÊÇÒ»Öµģ¬²ÉÓõÄÊÇÓ¢ÎıêÌâµÄÈ«³Æ»ò¼òд¡£Æ©È磬advioÎļþ¼Ð¶ÔÓ¦Chapter 14. Advanced I/O£¬¸ÃÕµĴúÂë¾Í·ÅÔÚ¸ÃÎļþ¼ÐÏÂÃæ¡£»¹ÓÐÎļþ¼Ðproc¶ÔÓ¦Chapter 8. Process Control£¬Îļþ¼Ðtermios¶ÔÓ¦Chapter 18. Terminal I/OµÈµÈ£¬»ù±¾ÉÏÿһÕµĴúÂë¶¼¿ÉÒÔÔÚÕâЩÎļþ¼ÐÖÐÕÒµ½¡£
£¨Èý£©ÈçºÎ±àÒëµ¥¶ÀµÄÔ´Îļþ
ͨ¹ýmakeÃüÁîÊÇÖ±½Ó½«ËùÓеÄÔ´³ÌÐò±àÒë³É¿ÉÖ´ÐÐÎļþµÄ¡£¶ÔÓÚϲ»¶Ð޸ĺ͵÷ÊÔ³ÌÐòµÄÅóÓÑÀ´Ëµ£¬makeÉú³ÉµÄ¿ÉÖ´ÐÐÎļþÏÔÈ»²»¾ßÓÐÕâÑùµÄ¹¦ÄÜ£¬¶øÇÒ£¬Ò²²»¿ÉÄÜÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬È»ºó»¹Òªmake¡£ÈçºÎÐèÒª±àÒëºÍµ÷ÊÔµ¥¸ö³ÌÐòµÄ»°£¬·½·¨ÈçÏ£º
1.Ê×ÏÈ»¹ÊÇÒªÓÃmake¶ÔËùÓÐÎļþ½øÐбàÒë¡£³É¹¦±àÒëºó£¬»áÔÚWKDIR£¯lib£¯ÏÂÉú³É¿âÎļþlibapue.a£¬Ö÷ÒªÊǽ«apue.h£¨Î»ÓÚWKDIR£¯include/£©Öж¨ÒåµÄËùÓÐÄÚÈÝÉú³ÉÒ»¸ö¾²Ì¬µÄ¿â£¬ÕâÑù¿ÉÒÔ·½±ãµ÷Óá£
2.ÎÒÃÇÒÔWKDIR/ϵÄfig1.3£¨ÊµÏÖls²¿·Ö¹¦ÄÜ£©ÎļþΪÀý˵Ã÷ÐèÒªÐ޸ĵĵط½¡£½«fig1.3ÎļþÖØÃüÃûΪfig
#include "apue.h" //ĬÈÏËùÒýÓÃÍ·ÎļþµÄλÖÃΪµ±Ç°µÄ·¾¶WKDIR=/home/apue.2e
ÐÞ¸ÄΪ
#include "include/apue.h"
¼´Í·Îļþapue.hµÄλÖÃΪµ±Ç°Â·¾¶ÏÂinlucdeÎļþ¼ÐÖУ¬Õâ¸ö¾ÍÕýÈ·µÄÖ¸¶¨ÁËapue.hµÄλÖá£
ÕâÑù¾Í¿ÉÒÔ½øÐбàÒëÁË£¬µ«ÔÚ±àÒëµÄʱºò»¹Òª¼ÓÉÏ¿âÎļþlibapue.a£¬ÒòΪ¸ÃÎļþʵÏÖÁËapue.hÖеÄËùÓй¦ÄÜ£¬Ö÷ÒªÓг£ÓÃÍ·Îļþ£¬ºê¶¨ÒåÒÔ¼°×Ô¶¨Ò庯ÊýµÄʵÏÖ¡£
ÊäÈëÃüÁî
#gcc fig
Ôò»áÉú³É¿ÉÖ´ÐÐÎļþa.out¡£Ö´ÐÐÃüÁî
#./a.out /home
ÔòÁгöÎÒµÄ/home·¾¶ÏµÄËùÓÐÎļþºÍÎļþ¼Ð£º
.
..
david
simsun .ttc
simkai.ttf
simsun.ttf
MYKERNEL
unix_advance_program
freebsd
APUE Source Code
LumaQQ
apue.2e
bash-script
lumaqq_2005_patch_2006.01.
lumaqq_2005-linux_gtk2_x86_with_jre.tar
apue_src_complied.tar
µ±È»£¬Èç¹ûÐèÒª±àÒëµÄÊǸ÷¸öÎļþ¼ÐÖеÄÒ»¸öÔ´³ÌÐòʱ£¬ÔòÖ»Ðè¶ÔËù°üº¬µÄÍ·Îļþapue.hµÄ·¾¶×÷Ïà¶ÔÐ޸쬏ÄΪ
#include "../include/apue.h"
ÒÔ¼°±àÒëÊÇ¿âÎļþµÄλÖÃÒ²ÏàÓ¦Ð޸쬏ÄΪ£º
#gcc sourcefile.c ../lib/libapue.a
ÖÁ´Ë£¬APUEµÚ¶þ°æ×÷ÕßÌṩµÄÔ´Âë±àÒë·½·¨ºÍµ¥¶ÀÔ´ÂëµÄ±àÒë¶¼ÒѾʵÏÖ¡£


