GNU C library ±Ê¼Ç1
ÄÚÈÝ£ºIntroduction ºÍ Error Reporting
1. glibc ËùʵÏÖÈ«²¿»ò²¿·Ö¹æ·¶ÏµĹ¦ÄÜÓÐ
ISO C: The international standard for the C programming language.
POSIX: The ISO/IEC 9945 (aka IEEE 1003) standards for operating systems.
Berkeley Unix: BSD and SunOS.
SVID: The System V Interface Description.
XPG: The X/Open Portability Guide.
Èç¹ûÖ»ÐèÒª ISO C µÄ¹¦ÄÜ£¬ÄÜÔÚ±àÒëʱʹÓà -ansi Ñ¡Ïî¡£glibc ʵÏÖÁËÈ«²¿µÄ ISO C ¹¦ÄÜ¡£POSIX ÊÇ ISO C µÄ³¬¼¯£¬Ëû¶îÍâµÄ°üÀ¨ÁË file system interface primitives¡¢device-specific terminal control functions¡¢process control functions¡£Berkeley Unix ʵÏÖÁËǰÁ½Õß¶àÊý¹¦ÄÜ£¬Ô´ÓÚ 4.2 BSD¡¢4.3 BSD, and 4.4 BSD Unix ϵͳ£¨Ò»°ã³ÆÎª Berkeley Unix£©¼° SunOS £¨»ùÓÚ 4.2 BSD ²»¹ýÓÖʵÏÖÁË System V µÄ²¿·Ö¹¦ÄÜ£©£¬Ëû¶îÍâµÄ°üÀ¨ÁË symbolic links¡¢the select function¡¢BSD signal functions¡¢sockets¡£SVID ÊÇ System V Interface Description£¬Ò²¾ÍÊÇÃèÊö AT&T Unix System V operating system µÄÒ»·ÝÎļþ£¬Ä³ÖÖÒâÒåÉÏÊÇ POSIX µÄ³¬¼¯£¬²»¹ýûÓÐÒÑÓÐµÄ Unix ʵÏÖÁËÆäÈ«²¿¹¦ÄÜ£¬glibc Ò²½ö½öʵÏÖÁËÆä²¿·Ö¹¦ÄÜ¡£Ëû¶îÍâʵÏֵŦÄܰüÀ¨ the methods for inter-process communication£¨IPC£©¡¢shared memory¡¢hsearch¡¢drand48 ϵÁк¯Êý¡¢fmtmsg¡¢Ò»Ð©ÆäËûµÄÊýѧº¯Êý¡£XPG£¨The X/Open Portability Guide£©ÃèÊöÁËʲôÑùµÄϵͳÂú×ãÀà Unix ϵͳµÄ»ù±¾ÐèÒª£¬glibc ·þ´Ó¸ÃÐèÇó¡£
2. Í·ÎļþÀïÃæÄ³Ð©º¯ÊýµÄʵÏÖʹÓà macro ×öµ½µÄ£¬ÀíÓÉÊÇÒ»°ãÕâÑù»á¸ü¿ì¡£²»¹ý²»±Ø²î±ðËûÃÇ£¬ÒòΪһ°ã¶¨ÒåÁËͬÃûµÄº¯Êý£¬Èç abs(int) ¼ÈÓк¯Êý¶¨ÒåÒ²ÓÐ macro ¶¨Ò壬ʹÓà & ²Ù×÷ʱ£¬ÓÉÓÚ macro µ÷ÓÃʱ²»ÄÜÆ¥Åäµ½ () Òò´ËÈÔÈ»ÄÜÈ¡µ½º¯ÊýµÄµØÖ·¡£Èç¹ûÐèÒªÏÔʽµÄµ÷Óú¯ÊýÄÜÓà () ½«º¯ÊýÃû°üΧ£¬Èç (abs)(3)£¬ÓÖ»òʹÓà #undef abs ½«¶¨Òå¹ýµÄ macro È¡Ïû¡£
3. ISO C ÔÊÐíÖØ¸´ #include Í·Îļþ£¬²»¹ý glibc ʹÓÃÁË #define #ifndef µÈÔ¤´¦ÀíÆ÷ÃüÁî±ÜÃâÁËͬһͷÎļþÖØ¸´×°ÔØ£¬Òò´ËÄÜ·ÅÐÄµÄ #include glibc µÄÍ·Îļþ¡£
4. ³ýÁË ISO C ¶¨ÒåµÄһЩ±£Áô×Ö£¬ÓÉÓÚ glibc ʵÏÖÁËһЩ¶îÍâµÄ¹¦ÄÜ£¬½¨Ò鲻ҪʹÓÿÉÄܺÍÖ®³åÍ»µÄһЩÃüÃû·½Ê½¡£
5. Ôõô¿ªÆôijÖÖ±ê׼Ϡglibc µÄ¹¦ÄÜ¡£Ç°ÃæÌáµ½ÄÜÀûÓà -ansi ½ö½öʹÓà ISO C ÒÔÄڵŦÄÜ¡£ÆäËûµÄͨ¹ý¶¨Òå macro ʵÏÖÌõ¼þ±àÁª£¬ÊµÏÖ·½Ê½·ÖÁ½ÖÖ£¬ÄÜÔÚ .c ÀïÃæ #define£¬»òÓÃ
Ïà¹ØÎĵµ£º
6.1 ±àдһ¸ö³ÌÐò,´´½¨Ò»¸ö¾ßÓÐ26¸öÔªËØµÄÊý×é,²¢ÔÚÆäÖд洢26¸öСд×Öĸ,²¢ÈøóÌÐòÏÔʾ¸ÃÊý×éµÄÄÚÈÝ.
#include <stdio.h>
int main(void)
{
char a[26] = {'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p ......
ÎÒÒ»Ö±Ïë×öÒ»¸öÈí¼þ³öÀ´£¬Ö»ÊǼòµ¥µÄ£¬±ÈÈç˵һ¸ö¼Ó¼õ³Ë³ýµÄEXE¡£¿ÉÊÇÎÒÖªµÀÎÒ´íÁË£¬ÎÒ×î½üÑ¡ÐÞÁËÒ»Ãŵç×Ó¹¤³ÌÉè¼ÆÓëÖÆ×÷ºó²ÅÁ˽â±à³ÌµÄÄ¿µÄºÍ¹¤¾ßµÄ¶àÑùÐÔ¡£²»Í¬µÄÈí¼þÌṩ²»Í¬µÄ±àÒë»·¾³£¬ÎÒ·¢ÏÖÄ£ÄâÈí¼þµÄÇ¿µÄ¡£ÎÒʱ³£ÏëÎÒÊDz»ÊÇ¿ÉÒÔͨ¹ýÎÒÏÂÔØ°²×°µÄÈí¼þÀ´Ñ§Ï°Ð©Ô´³ÌÐò¡£ÊǵÄÓÐһЩ£¬¿ÉÊÇÍêÈ«¿´²»¶®£¬³ýÁË ......
1. ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
ÎÒÔÚÕâÏë¿´µ½¼¸¼þÊÂÇ飺
1). #define Óï·¨µÄ»ù±¾ÖªÊ¶£¨ÀýÈ磺²»ÄÜÒԷֺŽáÊø£¬À¨ºÅµÄʹÓ㬵ȵȣ©
2). ¶®µÃÔ¤´¦ÀíÆ÷½«Î ......
//linuxϱàÒëg++ $(mysql_config --cflags) ***.cpp $(mysql_config --libs)
/*mysqlÊý¾Ý¿âÖбíµÄÄÚÈÝ
mysql> select * from maindb;
+------------------+---------+-------------+---------+----------+---------------------+---------------------+---------------------+------------------- ......
Ò» £º½â¾öC»òC++ÖеÄmultiple definition ofÎÊÌâ
server.cpp
clientp2p.cpp
#include "exception.h"
#include "clientp2p.h"
clientp2p.h
ÖÐдÓÐËùÓеÄÈ«¾Ö±äÁ¿¼°Æä³õʼ»¯Öµ
ºÍº¯ÊýÉùÃ÷
1.server.cppÖУº
ÒýÓÃ
£º
#include "clientp2p.h"
int Main(....)
{
...
}
2.clientp ......