Linux³ÌʽÉè¼Æ
http://www.openchess.org/noitatsko/programming/ (2001-05-24 16:47:48)
ÐźŴ¦Àí
--------------------------------------------------------------------------------
ÐźŴ¦Àí¸Å˵
ËͳöÐźÅ
½ÓÊÕÐźÅ
ÐźŵĴ¦Àí
ÈÎÎñ¿ØÖÆ
--------------------------------------------------------------------------------
POSIX IPC
reliable/unreliable
reentrant
pending
sending signals
catching signals
manipulating
signal definitions
--------------------------------------------------------------------------------
ÐźÅsingals
ÐźŵĴ¦Àí¿ÉÒÔÓÃÒ»´óÕÂÀ´Ð´£¬Éæ¼°µÄ²ãÃæÒ²»áÉîÈëÕû¸ö×÷ҵϵͳÖУ¬ÎÒ²¢²»´òËãÕâÑù×ö£¬ÒòΪÄú¿ÉÄÜ»áÔ½¸ãÔ½ÃÔºý¡£ÕâÀïÎÒÖ»¸æËßÄúÈçºÎ½ÓÉÏÐźţ¬ÔÚʵÓõIJãÃæÉÏ£¬ÕâÑù±ãºÜ¹»ÓÃÁË¡£Äú¿ÉÒÔÏÈÀûÓÃÕâЩ»ù±¾µÄ¼¼ÇÉÀ´×«Ð´³Ìʽ£¬µÈµ½ÓнøÒ»²½¸ßµÈÓ¦ÓõÄÐèҪʱ£¬ÕÒÒ»±¾½ÏÉîÈëµÄUNIX Programming½Ì²Ä£¬×¨ÃÅÑо¿signalµÄд·¨¡£
Ò»°ã¼òµ¥µÄsignalд·¨ÈçÏÂ:
void mysignal(int signo)
{
/* my signal handler */
}
void initsignal(void)
{
struct sigaction act;
act.sa_handler = mysignal;
act.sa_flags = 0;
sigemptyset(&act.sa_mask);
sigaction(SIGHUP,&act,NULL);
sigaction(SIGINT,&act,NULL);
sigaction(SIGQUIT,&act,NULL);
sigaction(SIGILL,&act,NULL);
sigaction(SIGTERM,&act,NULL);
}
ÀýÒ»: lock.c
ÔÚforkµÄÀýÈýÖÐÌáµ½£¬ÔÚdaemon±»É±µôʱ£¬ÐèÒªÔÚÀ뿪ǰ£¬½«/var/run/lock.pidɾ³ý¡£ÕâÀïÎÒÃÇ¿ÉÒÔÀûÓÃsignalÀ´´¦ÀíÕâ¼þÊ¡£
#include
#include
#include
#include
#define LOCK_FILE "/var/run/lock.pid"
void quit(int signo)
{
printf("Receive signal %d\n",signo);
unlink(LOCK_FILE);
exit
Ïà¹ØÎĵµ£º
±¾ÈËǰ¶Ëʱ¼äдÁ˸öHTMLÎļþ·ÖÎöÆ÷£¬windowsƽ̨ÉϵÄVC6.0£¬Ê¹Óñê×¼C++¡£×òÌì½Óµ½Ö¸ÁӦҪÇóÒª·¢²¼Ò»¸öLinux°æ±¾µÄ£¬Ã£È»À²£¬LinuxÏÂÃæµÄhello world¶¼Ã»ÓÐÍæ¹ý£¬¶ÔlinuxϵÄC++³ÌÐò½ö½öÏÞÓÚÌýËûÃÇÉñ´µ¹ýµÄGCC, G++, MAKEFILEʲôµÄ£¬ÆäËûÒ»¸Å²»Öª¡£Õâ¾Í×¢¶¨ÒÆÖ²¹ý³Ì±ØÈ»full of frustrating.
ÔçÉÏÔÚÈçͬä¸ä¸ÏªÁ÷ ......
Linux ÏÂÃæÊ¹ÓÃRPCÐèҪʹÓõ½ÃüÁîrpcgen.
ÔÚLinuxÏ¿ª·¢RPC³ÌÐòÁ÷³ÌÈçÏ£º
1.дһ¸örpc³ÌÐò
Èçtest.x
2.ʹÓÃrpcgenÉú³É±ØÐëµÄÎļþ£¬Í¨³£Êǿͻ§¶ËºÍ·þÎñÆ÷¶ËÒÔ¼°Í·Îļþ
$rpcgen test.x
3.ʹÓÃrpcgenÉú³É·þÎñÆ÷¶ËºÍ¿Í»§¶ËµÄCÓïÑÔ´úÂë
$rpcgen -Ss -o test_s ......
³ÉΪһÃû¾«Í¨ Linux ³ÌÐòÉè¼ÆµÄ¸ß¼¶³ÌÐòÔ±Ò»Ö±ÊDz»ÉÙÅóÓÑ×Î×ÎÒÔÇóµÄÄ¿±ê¡£¸ù¾ÝÖлªÓ¢²ÅÍøÍ³¼ÆÊý¾Ý£¬±±¾©µØÇø Linux ³ÌÐòÔ±ÔÂнƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 1.8 ±¶¡¢Java ³ÌÐòÔ±µÄ 2.6 ±¶£¬ Linux ³ÌÐòÔ±ÄêÖÕ½±½ðƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 2.9 ±¶¡£Í¬Ê±Êý¾ÝÏÔʾ£¬Ëæ×ʤ×÷¾ÑéµÄÔö³¤£¬ Linux ³ÌÐòÔ±Óë Windows ³ÌÐòÔ±µÄÊÕÈë²î¾à» ......
¸úÎÒÒ»Æðд Makefile
³Âð© (CSDN)
¸ÅÊö
——
ʲ
ôÊÇmakefile£¿»òÐíºÜ¶àWinodwsµÄ³ÌÐòÔ±¶¼²»ÖªµÀÕâ¸ö¶«Î÷£¬ÒòΪÄÇЩWindowsµÄIDE¶¼ÎªÄã×öÁËÕâ¸ö¹¤×÷£¬µ«ÎÒ¾õµÃÒª×÷Ò»¸öºÃµÄºÍ
professionalµÄ³ÌÐòÔ±£¬makefile»¹ÊÇÒª¶®¡£Õâ¾ÍºÃÏñÏÖÔÚÓÐÕâô¶àµÄHTMLµÄ±à¼Æ÷£¬µ«Èç¹ûÄãÏë³ÉΪһ¸öרҵÈËÊ¿£¬Ä㻹ÊÇÒªÁ˽ ......
LinuxÊÖ»úµÄÇ°Í¾ËÆºõºÜÉÙÓÐÈË»³Òɹý¡£Ôø¾×ö¹ýµÄ£¬ÏÖÔÚÕýÔÚ×öµÄ£¬¼´½«´òËã×öµÄ£¬ÔÚ¹úÄÚ¹À¼Æ²»ÏÂÊýÊ®¼Ò¹«Ë¾¡£´ó¼Ò¶¼Ïë´ÓÖÐÌÔһͰ½ð£¬²»¹ý´ó¶àÊdzËÐ˶øÀ´°ÜÐ˶ø¹é£¬ÉÙÔòËðʧ¼¸°ÙÍò£¬¶àÔòÊýǧÍò£¬ÓеÄÉõÖÁÕû¸ö¹«Ë¾Òò´ËÒ»ØÊ²»Õñ¡£ÔÚÕæÕýÒâÒå°ÑLinuxÊÖ»ú×ö³É¹¦µÄ£¬ÔÚ¹úÄÚ¿ÉÒÔ˵ÇúÖ¸¿ÉÊý¡£±¾À´ÒÔΪ¿ÉÒÔ¿¿¿ªÔ´Èí¼þÓë¹úÍâ´ó¹ ......