ÓÉÓÚҪʹÓõ½log4cppµÄ¿â£¬¶ølog4cµÄ×ÊÁÏÊǷdz£µÄÉÙ£¬Ò²ÀÁµÃÈ¥Ñо¿ËüµÄÓ÷¨£¬ÓÚÊǾ;ö¶¨ÊÔÊÔ»ìºÏ±à³ÌÕßÍæÒâ¡£
Ê×ÏÈÏÈÒýÓÃÏÂC++ËüµÄfather: StroustrupµÄһƪÎÄÕ¡¶C++ Style and Technique FAQ¡·£¨http://www2.research.att.com/~bs/bs_faq2.html£©ÀïµÄһС¸öƬ¶Î£º
Just declare the C function ``extern "C"'' (in your C++ code) and call it (from your C or C++ code). For example:
// C++ code
extern "C" void f(int); // one way
extern "C" { // another way
int g(double);
double h();
};
void code(int i, double d)
{
f(i);
int ii = g(d);
double dd = h();
// ...
}
The definitions of the functions may look like this:
/* C code: */
void f(int i)
{
/* ... */
}
int g(double d)
{
/* ... */
}
double h()
{
/* ... */
}
Note that C++ type rules, not C rules, are used. So you can't call function declared ``extern "C"'' with the wrong number of argument. For example:
// C++ code
void more_code(int i, ......
1
"
2
" @(#) This is vimrc for vim/gvim.
3
" This vimrc file will automatically configure itself based on
4
" the system it runs on (Windows/Unix).
5
" This vimrc file has been tested on SPARC/Solaris, Intel/Linux
6
" and Windows NT/ME
7
"
8
"
Config Notes:
9
"
Unix:
10
" 1. Create a directory: ~/vimtmp and move .viminfo there
11
" 2. Link: ln -s .vimrc .gvimrc
12
" 3. If gvim is executed, .vimrc will be executed twice.
13
" First as .vimrc and then as .gvimrc. This is good!
14
"
Windows:
15
" 1. Create a directory: $HOME\vimtmp
16
" 2. Move .viminfo (if it exists) to $HOME\vimtmp
17
" 3. Name .vimrc as _vimrc in $HOME
18
"
19
" Make sure there is no _ ......
±¾ÎÄÁгöÁ˴󲿷ֳ£¼ûµÄLinuxϵͳµ÷Ó㬲¢¸½ÓмòÒªÖÐÎÄ˵Ã÷¡£
ÒÔÏÂÊÇLinuxϵͳµ÷ÓõÄÒ»¸öÁÐ±í£¬°üº¬Á˴󲿷ֳ£ÓÃϵͳµ÷ÓúÍÓÉϵͳµ÷ÓÃÅÉÉú³öµÄµÄº¯Êý¡£Õâ¿ÉÄÜÊÇÄãÔÚ»¥ÁªÍøÉÏËùÄÜ¿´µ½µÄΨһһƪÖÐÎÄ×¢Ê͵ÄLinuxϵͳµ÷ÓÃÁÐ±í£¬¼´Ê¹ÊǼòµ¥µÄ×ÖĸÐòÓ¢ÎÄÁÐ±í£¬ÄÜ×öµ½ÕâôÍêȫҲÊǺܺ±¼ûµÄ¡£
°´ÕÕ¹ßÀý£¬Õâ¸öÁбíÒÔman
pagesµÚ2½Ú£¬¼´ÏµÍ³µ÷ÓýÚΪÀ¶±¾¡£°´ÕÕ±ÊÕßµÄÀí½â£¬¶ÔÆä×÷ÁË´óÖµķÖÀ࣬ͬʱҲ×÷ÁËһЩССµÄÐ޸ģ¬É¾È¥Á˼¸¸ö½ö¹©ÄÚºËʹÓ㬲»ÔÊÐíÓû§µ÷ÓõÄϵͳµ÷Ó㬶Ըö±ð±¾ÈËÉÔ¾õ²»Í׵ĵط½×÷ÁËһЩСµÄÐ޸쬲¢¶ÔËùÓÐÁгöµÄϵͳµ÷Óø½ÉϼòҪעÊÍ¡£
ÆäÖÐÓÐһЩº¯ÊýµÄ×÷ÓÃÍêÈ«Ïàͬ£¬Ö»ÊDzÎÊý²»Í¬¡££¨¿ÉÄܺܶàÊìϤC++ÅóÓÑÂíÉϾÍÄÜÁªÏëÆðº¯ÊýÖØÔØ£¬µ«ÊDZðÍüÁËLinuxºËÐÄÊÇÓÃCÓïÑÔдµÄ£¬ËùÒÔÖ»ÄÜÈ¡³É
²»Í¬µÄº¯ÊýÃû£©¡£»¹ÓÐһЩº¯ÊýÒѾ¹ýʱ£¬±»ÐµĸüºÃµÄº¯ÊýËù´úÌæÁË£¨gccÔÚÁ´½ÓÕâЩº¯Êýʱ»á·¢³ö¾¯¸æ£©£¬µ«ÒòΪ¼æÈݵÄÔÒò»¹±£Áô×Å£¬ÕâЩº¯ÊýÎÒ»áÔÚÇ°Ãæ
±êÉÏ“*”ºÅÒÔÊ¾Çø±ð¡£
Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐÖ¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý ......
sourceÃüÁ
sourceÃüÁîÒ²³ÆÎª“µãÃüÁ¬Ò²¾ÍÊÇÒ»¸öµã·ûºÅ£¨.£©¡£sourceÃüÁîͨ³£ÓÃÓÚÖØÐÂÖ´ÐиÕÐ޸ĵijõʼ»¯Îļþ£¬Ê¹Ö®Á¢¼´ÉúЧ£¬¶ø²»±Ø×¢Ïú²¢ÖØÐµÇ¼¡£
Ó÷¨£º
#vim ~/.bashrc
#source ~/.bashrc
......
1¡¢Linux »ù´¡
°²×°Linux²Ù×÷ϵͳ LinuxÎļþϵͳ Linux³£ÓÃÃüÁî LinuxÆô¶¯¹ý³ÌÏê½â ÊìϤLinux·þÎñÄܹ»¶ÀÁ¢°²×°Linux²Ù×÷ϵͳ Äܹ»ÊìÁ·Ê¹ÓÃLinuxϵͳµÄ»ù±¾ÃüÁî ÈÏʶLinuxϵͳµÄ³£Ó÷þÎñ°²×°Linux²Ù×÷ϵͳ Linux»ù±¾ÃüÁîʵ¼ù ÉèÖÃLinux»·¾³±äÁ¿ ¶¨ÖÆLinuxµÄ·þÎñ Shell ±à³Ì»ù´¡Ê¹ÓÃvi±à¼Îļþ ʹÓÃEmacs±à¼Îļþ ʹÓÃÆäËû±à¼Æ÷
2¡¢Shell ±à³Ì»ù´¡
Shell¼ò½é ÈÏʶºǫ́³ÌÐòBash±à³ÌÊìϤLinuxϵͳϵı༻·¾³ ÊìϤLinuxϵĸ÷ÖÖShell ÊìÁ·½øÐÐshell±à³ÌÊìϤvi»ù±¾²Ù×÷ ÊìϤEmacsµÄ»ù±¾²Ù×÷ ±È½Ï²»Í¬shellµÄÇø±ð ±àдһ¸ö²âÊÔ·þÎñÆ÷ÊÇ·ñÁ¬Í¨µÄshell½Å±¾³ÌÐò ±àдһ¸ö²é¿´½ø³ÌÊÇ·ñ´æÔÚµÄshell½Å±¾³ÌÐò ±àдһ¸ö´øÓÐÑ»·Óï¾äµÄshell½Å±¾³ÌÐò
3¡¢Linux Ï嵀 C ±à³Ì»ù´¡
linux CÓïÑÔ»·¾³¸ÅÊö GccʹÓ÷½·¨ Gdbµ÷ÊÔ¼¼Êõ Autoconf Automake Makefile ´úÂëÓÅ»¯ ÊìϤLinuxϵͳϵĿª·¢»·¾³ ÊìϤGcc±àÒëÆ÷ ÊìϤMakefile¹æÔò±àдHello,World³ÌÐò ʹÓà makeÃüÁî±àÒë³ÌÐò ±àд´øÓÐÒ»¸öÑ»·µÄ³ÌÐò µ÷ÊÔÒ»¸öÓÐÎÊÌâµÄ³ÌÐò
4¡¢Ç¶Èëʽϵͳ¿ª·¢»ù´¡
ǶÈëʽϵͳ¸ÅÊö ½»²æ±àÒë ÅäÖÃTFTP·þÎñ ÅäÖÃNFS·þÎñ ÏÂÔØBootloaderºÍÄÚºË Ç¶ÈëʽLinuxÓ¦ÓÃÈí¼þ¿ª·¢Á÷³ÌÊìϤǶÈëʽϵͳ¸ÅÄîÒÔ¼°¿ª·¢Á÷³Ì ½¨Á¢Ç ......
fg¡¢bg¡¢jobs¡¢&¡¢ctrl + z¶¼ÊǸúϵͳÈÎÎñÓйصģ¬ËäÈ»ÏÖÔÚ»ù±¾Éϲ»ÔõôÐèÒªÓõ½ÕâЩÃüÁµ«Ñ§»áÁËÒ²ÊǺÜʵÓõÄ
Ò»¡£& ×î¾³£±»Óõ½
Õâ¸öÓÃÔÚÒ»¸öÃüÁîµÄ×îºó£¬¿ÉÒÔ°ÑÕâ¸öÃüÁî·Åµ½ºǫִ́ÐÐ
¶þ¡£ctrl + z
¿ÉÒÔ½«Ò»¸öÕýÔÚǰִ̨ÐеÄÃüÁî·Åµ½ºǫ́£¬²¢ÇÒÔÝÍ£
Èý¡£jobs
²é¿´µ±Ç°ÓжàÉÙÔÚºǫ́ÔËÐеÄÃüÁî
ËÄ¡£fg
½«ºǫ́ÖеÄÃüÁîµ÷ÖÁǰ̨¼ÌÐøÔËÐÐ
Èç¹ûºǫ́ÖÐÓжà¸öÃüÁ¿ÉÒÔÓà fg
%jobnumber½«Ñ¡ÖеÄÃüÁîµ÷³ö£¬%jobnumberÊÇͨ¹ýjobsÃüÁî²éµ½µÄºǫ́ÕýÔÚÖ´ÐеÄÃüÁîµÄÐòºÅ(²»ÊÇpid)
Îå¡£bg
½«Ò»¸öÔÚºǫ́ÔÝÍ£µÄÃüÁ±ä³É¼ÌÐøÖ´ÐÐ
Èç¹ûºǫ́ÖÐÓжà¸öÃüÁ¿ÉÒÔÓÃbg
%jobnumber½«Ñ¡ÖеÄÃüÁîµ÷³ö£¬%jobnumberÊÇͨ¹ýjobsÃüÁî²éµ½µÄºǫ́ÕýÔÚÖ´ÐеÄÃüÁîµÄÐòºÅ(²»ÊÇpid)
LinuxÏÂʹÓÃShellÃüÁî¿ØÖÆÈÎÎñJobsÖ´ÐÐ
ÏÂÁÐÃüÁî¿ÉÒÔÓÃÀ´²Ù×ݽø³ÌÈÎÎñ£º
ps Áгöϵͳ
ÖÐÕýÔÚÔËÐеĽø³Ì£»
kill ·¢ËÍÐźŸøÒ»¸ö»ò¶à¸ö½ø³Ì£¨¾³£ÓÃÀ´É±ËÀÒ»¸ö½ø³Ì£©£»
jobs
Áгöµ±Ç°shell»·¾³ÖÐÒÑÆô¶¯µÄÈÎÎñ״̬£¬Èôδָ¶¨jobsid£¬ÔòÏÔʾËùÓлµÄÈÎÎñ״̬ÐÅÏ¢£»Èç¹û±¨¸æÁËÒ»¸öÈÎÎñµÄÖÕÖ¹(¼´ÈÎÎñµÄ״̬±»±ê¼ÇΪ
Terminated)£¬shell ´Óµ±Ç°µÄshell»·¾³
ÒÑÖªµÄÁбíÖÐɾ³ýÈÎÎñµÄ½ø³Ì± ......