Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux Ï C++ Òì³£´¦Àí¼¼ÇÉ

http://www.ibm.com/developerworks/cn/linux/l-cppexcep.html
´¦Àí¹ÌÓÐÓïÑÔ¾ÖÏÞÐÔµÄËÄÖÖ¼¼Êõ
´¦Àí C++ ÖеÄÒì³£»áÔÚÓïÑÔ¼¶±ðÉÏÓöµ½ÉÙÐíÒþº¬ÏÞÖÆ£¬µ«ÔÚijЩÇé¿öÏ£¬Äú¿ÉÒÔÈƹýËüÃÇ¡£Ñ§Ï°¸÷ÖÖÀûÓÃÒì³£µÄ·½·¨£¬Äú¾Í¿ÉÒÔÉú²ú¸ü¿É¿¿µÄÓ¦ÓóÌÐò¡£
±£ÁôÒì³£À´Ô´ÐÅÏ¢
ÔÚ C++ÖУ¬ÎÞÂÛºÎʱÔÚ´¦Àí³ÌÐòÄÚ²¶»ñÒ»¸öÒì³££¬¹ØÓÚ¸ÃÒì³£À´Ô´µÄÐÅÏ¢¶¼ÊDz»ÎªÈËÖªµÄ¡£Òì³£µÄ¾ßÌåÀ´Ô´¿ÉÒÔÌṩÐí¶à¸üºÃµØ´¦Àí¸ÃÒì³£µÄÖØÒªÐÅÏ¢£¬»òÕßÌṩһЩ¿ÉÒÔ¸½¼Óµ½´íÎóÈÕÖ¾µÄÐÅÏ¢£¬ÒÔ±ãÒÔºó½øÐзÖÎö¡£
ΪÁ˽â¾öÕâÒ»ÎÊÌ⣬¿ÉÒÔÔÚÅ׳öÒì³£Óï¾äÆڼ䣬ÔÚÒì³£¶ÔÏóµÄ¹¹Ô캯ÊýÖÐÉú³ÉÒ»¸ö¶ÑÕ»¸ú×Ù¡£ExceptionTracer
ÊÇʾ·¶ÕâÖÖÐÐΪµÄÒ»¸öÀà¡£
//ÔÚÒì³£¶ÔÏó¹¹Ô캯ÊýÖÐÉú³ÉÒ»¸ö¶ÑÕ»¸ú×Ù
// Sample Program:
// Compiler: gcc 3.2.3 20030502
// Linux: Red Hat
#include <execinfo.h>
#include <signal.h>
#include <exception>
#include <iostream>
using namespace std;
/////////////////////////////////////////////
class ExceptionTracer
{
public:
ExceptionTracer()
{
void * array[25];
int nSize = backtrace(array, 25);
char ** symbols = backtrace_symbols(array, nSize);
for (int i = 0; i < nSize; i++)
{
cout << symbols[i] << endl;
}
free(symbols);
}

¹ÜÀíÐźÅ
ÿ
µ±½ø³ÌÖ´ÐÐÒ»¸öÁîÈËÌÖÑáµÄ¶¯×÷£¬ÒÔÖÂÓÚ Linux™
Äں˷¢³öÒ»¸öÐźÅʱ£¬¸ÃÐźŶ¼±ØÐë±»´¦Àí¡£ÐźŴ¦Àí³ÌÐòͨ³£»áÊÍ·ÅһЩÖØÒª×ÊÔ´²¢ÖÕÖ¹Ó¦ÓóÌÐò¡£ÔÚÕâÖÖÇé¿öÏ£¬¶ÑÕ»ÉϵÄËùÓжÔÏóʵÀý¶¼´¦ÓÚδÆÆ»µ×´Ì¬¡£Áí
Ò»·½Ã棬Èç¹ûÕâЩÐźű»×ª»»³É C++ Òì³££¬ÄÇôÄú¿ÉÒÔÓÅÑŵص÷ÓÃÆä¹¹Ô캯Êý£¬²¢°²ÅŶà²ã catch ¿é£¬ÒÔ±ã¸üºÃµØ´¦ÀíÕâЩÐźš£
Çåµ¥ 2 Öж¨ÒåµÄ SignalExceptionClass
£¬ÌṩÁ˱íʾÄں˿ÉÄÜ·¢³öÐÅºÅµÄ C++ Òì³£µÄ³éÏó¡£SignalTranslator
ÊÇÒ»¸ö»ùÓÚ SignalExceptionClass
µÄÄ£°åÀ࣬Ëüͨ³£ÓÃÀ´ÊµÏÖµ½ C++ Òì³£µÄת»»¡£ÔÚÈκÎ˲¼ä£¬Ö»ÄÜÓÐÒ»¸öÐźŴ¦Àí³ÌÐò´¦ÀíÒ»¸ö»î¶¯½ø³ÌµÄÒ»¸öÐźš£Òò´Ë£¬SignalTranslator
²ÉÓÃÁË singleton Éè¼Æģʽ¡£ÕûÌå¸ÅÄîͨ¹ýÓÃÓÚ SIGSEGV µÄ SegmentationFault
ÀàºÍÓÃÓÚ SIGFPE µÄ FloatingPointException
ÀàµÃµ½ÁËչʾ¡£

template <class SignalExceptionC


Ïà¹ØÎĵµ£º

linuxϵͳϲ鿴ºÍÉèÖÃÈÕÆÚʱ¼äµÄÃüÁî

linuxϵͳϲ鿴ºÍÉèÖÃÈÕÆÚʱ¼äµÄÃüÁÊÇdate¡£
²é¿´ÈÕÆÚʱ¼äÃüÁdate
ÉèÖÃÈÕÆÚʱ¼äÃüÁdate -s [date|time]
ÉèÖÃϵͳÈÕÆÚºÍʱ¼äΪ:2008Äê9ÔÂ9ÈÕ14ʱ25·Ö49Ãë
date -s '20080909 14:25:49'   //Ò»¶¨Òª¼ÓÒýºÅ²ÅÐС£ ......

linuxϼÆËãÖ¸¶¨Ä¿Â¼ÏÂÓ°¼þµÄ´óС£¬»ùÓÚcÓïÑÔ

 1//ÓÉÓÚʹÓÃgcc±àÒ룬ËùÒÔ±àÒëʱҪÁ´½ÓÉÏc++µÄ¿â£¬ÃüÁîÊÇgcc -lstdc++ main.cpp -o main
//±¾ÎÄС³ÌÐòʵÏÖµÄÊǶÔ/home/1.avi´óСµÄ¼ÆËã¡£ºÜ¼òµ¥£¬Ìù³öÀ´Ö»ÊÇΪÁË·½±ã²»ÖªµÀµÄÅóÓÑ
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <sys/stat.h>
  5 #includ ......

ÔÚlinuxÖа²×° Vmwar Tools

°²×°Vmwar Tools
¡¡¡¡Ñ¡ÔñVM-->install VMware Tools
¡¡¡¡[root@localhost ~]# mkdir /mnt/cdrom
¡¡¡¡[root@localhost ~]#mount /dev/cdrom /mnt/cdrom/
¡¡¡¡[root@localhost ~]# cd /mnt/cdrom/
¡¡¡¡[root@localhost cdrom]# ls ºóÓÐ
¡¡¡¡VMwareTools-6.5.0-118166.i386.rpm
¡¡¡¡VMwareTools-6.5.0-11816 ......

linuxÏÂÎļþÀàÐ͵ĻñÈ¡

ÎļþÀàÐÍ»ñÈ¡Ò»¡¢stat¡¢fstat ºÍlstat º¯Êý#include <sys/types.h>
¡¡¡¡#include <sys/stat.h>
¡¡¡¡int stat(const char * pathname, struct stat * buf);
¡¡¡¡int fstat(int filedes,struct stat * buf);
¡¡¡¡int lstat(const char * pathname, struct stat *buf);
¡¡¡¡Èý¸öº¯ÊýµÄ·µ»Ø£ºÈô³É¹¦ÔòΪ0£¬Èô³ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ