(webããã¡ãã¡ããã£ãŠã¿ãã®ã§ãããäžéšã ãã ã£ãããå€ãã£ããã§ã
æ¡å€ã¿ã€ãããªãã®ã§ã)
--
ã_ã ____________________________
ãã»ã» ã vo...@merope.pleiades.or.jp
( ° )ïœ æ¥äžéšéœäž
âŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸâŸ
> C99ã®æšæºã©ã€ãã©ãªãŒé¢æ°ã®äžèЧã£ãŠ
> ã©ããã«ãªãã§ãã?
>
> (webããã¡ãã¡ããã£ãŠã¿ãã®ã§ãããäžéšã ãã ã£ãããå€ãã£ããã§ã
> æ¡å€ã¿ã€ãããªãã®ã§ã)
C90 ãšã®å·®åã«ãªããŸãããhttp://seclan.dll.jp/c99d/ ãªããŠãããã§ããïŒ
ããšã¯ ISO ã®èŠæ Œæžã®åæãå
¥æãããããªãã®ããªãã
ïŒãã JIS ã«ãªã£ãŠãŸããã£ãïŒJIS ã«ãªã£ãŠãã° PDF ã§èªããããªãã§ããã
========================================================================
é£¯å¶ æµ©å
/ ã§ããããã»ããã㟠http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp
å¥ä»¶ã§ãããïŒïŒä»æ§ã§ã®ã
ãã£ã¡ãããã
ãããã°æïŒå¯å€åŒæ°ãã¯ãïŒ
ã¯ã©ãæžãã°ãè¯ãã®ã§ããããïŒ
ïŒãæé©åãããšæ¶ããŠãªããªãã»ã¯ã»ãã»ãã¯ç¡ãã§ã
æé©åããªããŠããéDEBUGæã«æ¶ããŠæ¬²ããã
ã€ã¡ãŒãžïŒ
#if DEBUG
#define SNAP(........ ããïŒ
#endif
int main(void)
{
SNAP("%s\n", __FILE__) ;
SNAP("%s:%d\n", __FILE__,__LINE__) ;
SNAP("%s:%d:%s\n",__FILE__.__LINE__,__FUNCTION__) ;
return 0 ;
}
--
以äž
In article <bfls2e$kej$1...@bgsv5647.tk.mesh.ad.jp>, "tabe" <ta...@mug.biglobe.ne.jp> writes
> ïŒãæé©åãããšæ¶ããŠãªããªãã»ã¯ã»ãã»ãã¯ç¡ãã§ã
> æé©åããªããŠããéDEBUGæã«æ¶ããŠæ¬²ããã
æè¿ãèªãã æ¬ Writing Solid Code ã«ããassert ãå€çšããåº
è·æã«ã¯æ¶ããã¿ãããªè©±ãèŒã£ãŠãŸããããæ ¹æ¬çã«ééã£ãŠã
ãããããªãããªã
debug code ãå
šäœã®10%ãè¶ããããšã¯çµ¶å¯Ÿã«ããåŸãªãã§ãã
ã§ãif æã§åãã°ã倧åã¯branch predictionã«åŒã£ããã£ãŠã
å
šäœã®ããã©ãŒãã³ã¹ã«ã¯åœ±é¿ããªããšæãã
ããçšåºŠã®å€§ããã®ããã°ã©ã ãªãã°ããã©ããã£ãŠãããã°ãã
ãããã©ããã£ãŠãã¹ãããããã£ãŠã®ãåãã£ãŠèããã¹ãã§ã
ãã®hookãšããŠãdebug code ãããã¹ããªããããªãããªã
ããšãã° GNU malloc ãªããã¯ãdebug code (ã£ãŠããã®ã?)
built-in ã§ãããã
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
æ²³éçæ²» @ çç倧åŠå·¥åŠéšæ
å ±å·¥åŠç§,
ç§åŠæè¡æ¯èäºæ¥å£ããããç ç©¶21(æ©èœãšæ§æ)
> å¥ä»¶ã§ãããïŒïŒä»æ§ã§ã®ã
> ãã£ã¡ãããã
> ãããã°æïŒå¯å€åŒæ°ãã¯ãïŒ
> ã¯ã©ãæžãã°ãè¯ãã®ã§ããããïŒ
> ïŒãæé©åãããšæ¶ããŠãªããªãã»ã¯ã»ãã»ãã¯ç¡ãã§ã
> æé©åããªããŠããéDEBUGæã«æ¶ããŠæ¬²ããã
>
> ã€ã¡ãŒãžïŒ
> #if DEBUG
> #define SNAP(........ ããïŒ
> #endif
#if DEBUG
#define SNAP(...) fprintf(stderr, __VA_ARGS__)
#else
#define SNAP(...)
#endif
> int main(void)
> {
> SNAP("%s\n", __FILE__) ;
> SNAP("%s:%d\n", __FILE__,__LINE__) ;
> SNAP("%s:%d:%s\n",__FILE__.__LINE__,__FUNCTION__) ;
s/\./,/
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
From: "Shinji KONO" <ko...@ie.u-ryukyu.ac.jp>
> æè¿ãèªãã æ¬ Writing Solid Code ã«ããassert ãå€çšããåº
> è·æã«ã¯æ¶ããã¿ãããªè©±ãèŒã£ãŠãŸããããæ ¹æ¬çã«ééã£ãŠã
> ãããããªãããªã
ãã®æ¬ã¯ã以åãfj.comp.lang.c
ã§ç޹ä»ãããã®ã§ãèªã¿ãŸããã
èªãã§ãæã¯ç¡ãããšæããŸããã
ASSERT()ã®äºã°ããæžããŠããèšæ¶ããããŸãã
gcc,lint,splintçã®èšèªåŠçç³»ã¯ã
ïœïœïœïœ
ïœïœãå€çšããŠåºè·ïŒããŠã
ãå
éšãšã©ãŒã§ãããããã¡ãããããŠãŸããã
ããã¯ãããã§è¯ãå§¿å¢ã ãšæããŸãã
ãããã
ã»åååçºé»æã®å¶åŸ¡
ã»èªç©ºæ©ã®å¶åŸ¡ã
ã»èªåè»ãšã³ãžã³ã®å¶åŸ¡
çã§ãïœïœïœïœ
ïœïœãæå¹ã«ããŠåºè·ããäºãã
è¯ãäºãªã®ãã
æªãäºãªã®ãã
ç§ã«ã¯ããããŸããã
> debug code ãå
šäœã®10%ãè¶ããããšã¯çµ¶å¯Ÿã«ããåŸãªãã§ãã
> ã§ãif æã§åãã°ã倧åã¯branch predictionã«åŒã£ããã£ãŠã
> å
šäœã®ããã©ãŒãã³ã¹ã«ã¯åœ±é¿ããªããšæãã
æ²³éããã®ãèãã¯ã
http://www.catnet.ne.jp/kouno/c_faq/c10.html#26
ã®æåŸã«ããã
ãããããã¯é©åã«å®çŸ©ãããæ¹æ³ã§
å¯å€åã®åŒæ°ãæ±ãç¹è£œã®é¢æ°ã äœãã»ããããããšèšãäºã§ããããïŒ
ããã§ãããã°ãç§ãåæããŸãã
ç§ããæ¶ããŠç¡ããªãæ(=ãããã°ããªã³ãæïŒãæãã ã®ã¯ã
SNAP("%s:%d:%s\n",__FILE__.__LINE__,__FUNCTION__) ;
ãã
ïœïŒïŒä»æ§ã§ã
#if DEBUG
#define SNAP printf
#else
#define SNAP
#endif
ãšãå®çŸ©ããå Žåã
éæ
ïŒ"%s:%d:%s\n",__FILE__.__LINE__,__FUNCTION__ïŒã;
ãšãªãã
ïœïœïœ -Wall -W çãã
null effect(ç¡å¹ãªèšè¿°ïŒ
ã®èŠåãããããåºããŠããããããã§ãã
> ããçšåºŠã®å€§ããã®ããã°ã©ã ãªãã°ããã©ããã£ãŠãããã°ãã
> ãããã©ããã£ãŠãã¹ãããããã£ãŠã®ãåãã£ãŠèããã¹ãã§ã
> ãã®hookãšããŠãdebug code ãããã¹ããªããããªãããªã
> ããšãã° GNU malloc ãªããã¯ãdebug code (ã£ãŠããã®ã?)
> built-in ã§ãããã
è¶
巚倧ãªããã°ã©ã ã«ãªããšã
core ãããªããã¿ã«åŒã£ãããã
gdb çã®ãããã¬ã䜿çšã§ããªããªãã®ã§ã
çããè²ã
èŠåŽããŠãŸãã
æåŸã«ãªããŸãããã
çå±±ãããè§£çããããšãããããŸããã
s/\./,/
ã¯ãä»åŸã®èª²é¡ãšãããŠé ããŸãïŒãžãžïŒã
以äžã
> ãããã
> ã»åååçºé»æã®å¶åŸ¡
> ã»èªç©ºæ©ã®å¶åŸ¡ã
> ã»èªåè»ãšã³ãžã³ã®å¶åŸ¡
> çã§ãïœïœïœïœ
ïœïœãæå¹ã«ããŠåºè·ããäºãã
> è¯ãäºãªã®ãã
> æªãäºãªã®ãã
> ç§ã«ã¯ããããŸããã
assert(ãããã¯é¡äŒŒã®ãšã©ãŒãã§ãã¯)ã«åŒã£ããããã°ããã£ãå Žåãèã
ãã°åããã®ã§ã¯ãªãã§ãã?
ç¡ããã°ïŒäœãèµ·ãããåãããªãïŒãã°ã®èšé²ãæ®ããªãïŒ
ãã§ãã¯ãå
¥ããŠããã°ïŒå°ãªããšãèšé²ã¯(ããšãã°NVRAMã«)ãšãããïŒã
ãŸãããã°ãã§ã€ã«ã»ã€ãåŠçã詊ã¿ãããšãã§ããã§ãããïŒ
é«ãä¿¡é Œæ§ã®å¿
èŠãªã·ã¹ãã ã§ã¯ïŒãå¥ã
ã®ããŒã ã«æžãããè€æ°ã®ã¢ãžã¥ãŒ
ã«ã§åãèšç®ãè¡ãªãïŒçµæãçªãåãããŠãã§ãã¯ããããªããŠãã話ãè
ããããšããããŸãïŒ
> ïœïŒïŒä»æ§ã§ã
> #if DEBUG
> #define SNAP printf
> #else
> #define SNAP
> #endif
> ãšãå®çŸ©ããå Žåã
#ifndef NDEBUG
#define SNAP(x) printf x
#else
#define SNAP(x)
#endif
SNAP(("%s:%d:...",__FILE__.__LINE__));
ãšãïŒC-FAQã«ããããŸãã(ããªããã»ããµã®ç« ã®æåŸã®æ¹)ïŒ
ãã¯ããããªããŠé¢æ°åŒã³åºãã«ããšãã®ã倧æµã®å Žåã¯æ£è§£ã ãšæããŸãã...
åç°æŠåž
"MAEDA Atusi" <ma...@cc.tsukuba.ac.jp> wrote in message
news:m3u19bx...@maedapc.cc.tsukuba.ac.jp...
> > çã§ãïœïœïœïœ
ïœïœãæå¹ã«ããŠåºè·ããäºãã
> > è¯ãäºãªã®ãã
> > æªãäºãªã®ãã
> > ç§ã«ã¯ããããŸããã
> assert(ãããã¯é¡äŒŒã®ãšã©ãŒãã§ãã¯)ã«åŒã£ããããã°ããã£ãå Žåãèã
> ãã°åããã®ã§ã¯ãªãã§ãã?
ã³ã³ãã€ã©æäŸã®ã
assert() ãšã
åãªããããã°ããªã³ãæãæç¢ºã«åããŠèããŠãã ããã
assert() ã¯ãããã°ã©ã ã峿»ããŸãã
ç§ããããããªããšèšã£ãŠããã®ã¯ã
以äžã®ã³ãŒãã§assert() ãæå¹ã«ããŠåºè·ããŠè¯ããã©ããã§ãã
switch(ã³ã€ã³) {
case è£:ã break ;
case 衚: break ;
default:
assert() ; // ããããåãªãprintfæããlogåéãªãäœã®åé¡
ãç¡ãã
}
ã¡ãªã¿ã«ãã³ã€ã³ã¯çµæ§ç°¡åã«ãç«ã¡ãŸãã
以äžã
> > assert(ãããã¯é¡äŒŒã®ãšã©ãŒãã§ãã¯)ã«åŒã£ããããã°ããã£ãå Žåãèã
> > ãã°åããã®ã§ã¯ãªãã§ãã?
>
> ã³ã³ãã€ã©æäŸã®ã
> assert() ãšã
> åãªããããã°ããªã³ãæãæç¢ºã«åããŠèããŠãã ããã
ïŒããã£ã£
å
ã
SNAPãšãããåãªããããã°ããªã³ãããã¯ãã®è©±ã ã£ãã®ã§ã¯ãªãã§ã
ãïŒãªãã§åããã«èª¬æãããªãããªããã®ãïŒ
> ç§ããããããªããšèšã£ãŠããã®ã¯ã
> 以äžã®ã³ãŒãã§assert() ãæå¹ã«ããŠåºè·ããŠè¯ããã©ããã§ãã
ããã§ããïŒããã¯ããªãã®èª¬æäžè¶³ã§ããïŒ
簡䟿ãªassertã¯äŸ¿å©ãªå Žåãå€ãã§ããïŒèªããšéçããããŸãïŒ
ã±ãŒã¹ãã€ã±ãŒã¹ãšããèšãããããªãã§ãããïŒ
> assert() ; // ããããåãªãprintfæããlogåéãªãäœã®åé¡
> ãç¡ãã
assert(0)ã®æã§ãããïŒ
> ã¡ãªã¿ã«ãã³ã€ã³ã¯çµæ§ç°¡åã«ãç«ã¡ãŸãã
ãªãïŒassert(0)ãšãabort()ãå
¥ããã®ã¯æããã«ééãã§ããïŒ
åœç¶ïŒããã«å¶åŸ¡ãæ¥ãå Žåã®åŠçãèšè¿°ãã¹ãã§ãããïŒ
åç°æŠåž
<m3ptjzw...@maedapc.cc.tsukuba.ac.jp>ã®èšäºã«ãããŠ
ma...@cc.tsukuba.ac.jpããã¯æžããŸããã
> > ã¡ãªã¿ã«ãã³ã€ã³ã¯çµæ§ç°¡åã«ãç«ã¡ãŸãã
>
> ãªãïŒassert(0)ãšãabort()ãå
¥ããã®ã¯æããã«ééãã§ããïŒ
> åœç¶ïŒããã«å¶åŸ¡ãæ¥ãå Žåã®åŠçãèšè¿°ãã¹ãã§ãããïŒ
ããã§ããã
ãã®å€ãªæ¬ã«ããassert ã¯çµ¶å¯Ÿèµ·ããããªãç¶æ³ãæžããšããã£ããã
ãªæ°ããããã ããã©âŠâŠãªãã£ãã£ããïŒ
åœç¶ãassert(0) ã§èœã¡ããšå³ãäººãæ»ã¬å¯èœæ§ããããšããªãã
assert(0) ã«ããªãã£ãŠã®ãçã£ãŠããã ãããã
ç§ã®èª¬æãæªãã®ãããããªãããã©ãassert ãæžãæå³(å¿ïŒ^^;)ã
äžåã®èª¬æã§çè§£ããŠããããããšã£ãŠãªããªãããšã¬ã¬ã³ãã§æå¿«ãª
説æã£ãŠé£ããâŠâŠ
--
æç° éè ïŒ ãšãŒã»ã¢ã€ã»ãœããæ ªåŒäŒç€Ÿ CS å質æšé²èª²
E-mail tak...@aisoft.co.jp
ãååéã§æ±ºæããçãçç±ãæ·»ãããã
(ããããã°ãfj.comp.programming ã«Writing Solid Codeã®
æªå£ãæžãããšãã¯åå¿0ã ã£ã... ã§ããã®ç¹°ãè¿ããªãã ãã©)
In article <bfr400$2hs$1...@news01.highway.ne.jp>, tak...@aisoft.co.jp (Narita Takaoki) writes
> ãã®å€ãªæ¬ã«ããassert ã¯çµ¶å¯Ÿèµ·ããããªãç¶æ³ãæžããšããã£ããã
> ãªæ°ããããã ããã©âŠâŠãªãã£ãã£ããïŒ
ãã®ãµãã«ãŒãã³ã§ã®åææ¡ä»¶ãæžãã§ãããæ©ãã«ãã°ãèŠã€ãã
ææ®µãšããŠäœ¿ãã¿ããã
> åœç¶ãassert(0) ã§èœã¡ããšå³ãäººãæ»ã¬å¯èœæ§ããããšããªãã
> assert(0) ã«ããªãã£ãŠã®ãçã£ãŠããã ãããã
ã ãããåœç¶ã補åã§ã¯èœãããã§ããªããã®æ¬(Writing Sold Code)
ã®å€ãªãšããã¯ãã補åã«ãªã£ãåŸã®ãšã©ãŒã¯ã俺ã¯ç¥ããããšãã
èããªãã ããª...
ããšããšã©ãŒã¯æªãããšã ã£ãŠã®ãåæãšããŠããã¿ããã
> ç§ã®èª¬æãæªãã®ãããããªãããã©ãassert ãæžãæå³(å¿ïŒ^^;)ã
> äžåã®èª¬æã§çè§£ããŠããããããšã£ãŠãªããªãããšã¬ã¬ã³ãã§æå¿«ãª
> 説æã£ãŠé£ããâŠâŠ
ãµãã«ãŒãã³ã«åææ¡ä»¶ããããšããã°ããããæç€ºããã£ãŠã®ã¯
çè§£ã§ããŸããããããããããã§ãã¯ãããšé
ããªãã£ãŠã®ã¯ã
åã¯ããªããå€ã ãšæããã³ã³ãã€ã©ãå®è¡æã®å·¥å€«ã§ãããã¯é¿
ããããã¯ãã
ãªããžã§ã¯ãæåãšãã³ãŒãã®åå©çšããããã¯ããã©ã°ã€ã³ãªã©ã
å°å
¥ãããçŸåšã§ã¯ã
åŠçãå®è¡ããåææ¡ä»¶ã¯ãå¿ ãããã§ãã¯ãã
ã£ãŠã®ãå¿
é ã ãšæãããªã®ã§ãassert ã£ãŠã®ã¯çŸç¶ã«ãã£ãŠãª
ããšæããŸãããã®æã®ã³ãŒãã¯æ®ãã¹ããªã®ãããããŠã
ãšã©ãŒãã§ãã¯ã§å€±æãããšãã«ãããšåŒãåãã
ããšãå¿
é ã ãšæãããã¡ããã絶察ã«åŸ©åž°ã§ããªããšã©ãŒã£ãŠã®
ãããã®ã¯ãããã ãšæããã ãã©ããªããžã§ã¯ããšãã¡ã¢ãªããŒ
ã«ãšãããã»ã¹ãšã䜿ãããšã«ãã£ãŠçµæ§é¿ãããããšæããã ã
ã©ã
ãšããããã§ãåã®ç«å Žã¯ã
ãšã©ãŒåŠçãããªãããšãåæã®assertã¯ã補ååããªããããª
ããã°ã©ã (ãããã¯ããã€ã¯ããœããã®å£²ã£ããåã¡ããã°ã¯
ç¥ããæ¹é)ãåæã§ãããæä»£é
ãã§ãã£ãŠã䜿ã£ãŠã¯ãããªã
ãã®ã ã
ã£ãŠãªããã§ãã
ãã¶ããæ°å€èšç®ãšãã ãšããããã°æããšãèšç®æããããããŠãã
ãã assert ãšãæå¹ãªã®ãç¥ããªããªã
Writing Sold Code ã«ã¯ãããäžã€ã
ãµãã«ãŒãã³ã®ãšã©ãŒéç¥ãšå€ã®è¿åŽãå
±çšããªã (ã€ãŸãEOF==1ãNaNã¿ãããª
ã®ã䜿ããªã)
ã£ãŠãã®ããããã ãã©ãããããšã©ãŒãäžäœã«éç¥ããªãããšã
åæã«æžããŠãããšæãããšã©ãŒãéç¥ããææ®µãšããŠreturn value
ã䜿ãã®ã¯åã¯æå¹ã ãšæããå®éãEOF ã¯äŸ¿å©ã ãã
ãšã©ãŒãç¹å¥èŠããããšãééã£ãŠãããã ãããªãããã°ã©ã çè«
çã«ãâ¥ã¯äŸ¿å©ã ãã
"Shinji KONO" <ko...@ie.u-ryukyu.ac.jp> wrote in message
news:3988646...@insigna.ie.u-ryukyu.ac.jp...
> ãã®ãµãã«ãŒãã³ã§ã®åææ¡ä»¶ãæžãã§ãããæ©ãã«ãã°ãèŠã€ãã
> ææ®µãšããŠäœ¿ãã¿ããã
ç§ãåŸãå°è±¡ã§ã¯(ããããªãæã«èªãã ããªãªã®ã§ãããµãã§ãã)ã
åŠçãç¶ç¶ã§ããªããããªééã£ãå
¥åãªãèœãšããå
¥åãšããŠæ³å®
ãããŠã¯ãããæ£ããã¯ãªãå Žåã«ãšã©ãŒãšããŠè¿ãâŠã§ããã
> ãµãã«ãŒãã³ã«åææ¡ä»¶ããããšããã°ããããæç€ºããã£ãŠã®ã¯
> çè§£ã§ããŸããããããããããã§ãã¯ãããšé
ããªãã£ãŠã®ã¯ã
> åã¯ããªããå€ã ãšæããã³ã³ãã€ã©ãå®è¡æã®å·¥å€«ã§ãããã¯é¿
> ããããã¯ãã
>
> ãªããžã§ã¯ãæåãšãã³ãŒãã®åå©çšããããã¯ããã©ã°ã€ã³ãªã©ã
> å°å
¥ãããçŸåšã§ã¯ã
>
> åŠçãå®è¡ããåææ¡ä»¶ã¯ãå¿
ãããã§ãã¯ãã
>
> ã£ãŠã®ãå¿
é ã ãšæãããªã®ã§ãassert ã£ãŠã®ã¯çŸç¶ã«ãã£ãŠãª
> ããšæããŸãã
å¿
ããã§ãã¯ããã¯ãåæã§ããã
# ãªããžã§ã¯ãæåã§ããšã©ãŒã®è¿ãæ¹ã¯âŠç¹ã« C++ ãâŠ
# äœã® exception æããã®ããã¡ããšæžããŠãããŠãªããš
# catch ã§ããªã㊠assert ãšå€ãããªãæ°ãããªãããªãâŠã
# ããèšãã°ãJava ã ãšé
åã®ç¯å² check ããªããŠããexception ã§
# ããããå®å
šã ãšãããæèŠã itpro ã«èŠæããæ°ãããŸãã
# ãã¡ããšäžã§ catch ããŠãããã ãšä¿¡ãããã§ããã©âŠ
> ãã®æã®ã³ãŒãã¯æ®ãã¹ããªã®ãããããŠã
>
> ãšã©ãŒãã§ãã¯ã§å€±æãããšãã«ãããšåŒãåãã
>
> ããšãå¿
é ã ãšæãããã¡ããã絶察ã«åŸ©åž°ã§ããªããšã©ãŒã£ãŠã®
> ãããã®ã¯ãããã ãšæããã ãã©ããªããžã§ã¯ããšãã¡ã¢ãªããŒ
> ã«ãšãããã»ã¹ãšã䜿ãããšã«ãã£ãŠçµæ§é¿ãããããšæããã ã
> ã©ã
ã¯ãå®å
šã«å®çŸããããšãããšå
šãŠ virtual machine ã®äžã§èµ°ãããŠ
ææªã¯ virtual machine ã®åèµ·åãå¿
èŠã«ãªããŸãããïŒ
# virtual machine ã®äœ¿ãããŒã¿ã¯å
šãŠæ¬äœã® database ã«ç»é²ããŠ
# ãã€ã§ã rollback ã§ããããã«ããã®ããªã
> ãšããããã§ãåã®ç«å Žã¯ã
>
> ãšã©ãŒåŠçãããªãããšãåæã®assertã¯ã補ååããªããããª
> ããã°ã©ã (ãããã¯ããã€ã¯ããœããã®å£²ã£ããåã¡ããã°ã¯
> ç¥ããæ¹é)ãåæã§ãããæä»£é
ãã§ãã£ãŠã䜿ã£ãŠã¯ãããªã
> ãã®ã ã
>
> ã£ãŠãªããã§ãã
>
> ãã¶ããæ°å€èšç®ãšãã ãšããããã°æããšãèšç®æããããããŠãã
> ãã assert ãšãæå¹ãªã®ãç¥ããªããªã
ãšã©ãŒåŠçãããªããMicrosoft ãããèããŠãããã¯ç¥ããªãã®ã§ããã
ããšã©ãŒãè¿ããŠãåŠçã§ããªãã®ãªãããšã©ãŒãè¿ããŠã仿¹ãªãããšã
Writing Solid Code ã«ã¯æžãããŠããŸãããã
# ãåŠçããŠãããªããªããabort ããŠãããã¿ãããªè©±ã ã£ããšèšæ¶ããŠããŸãã
> Writing Sold Code ã«ã¯ãããäžã€ã
>
> ãµãã«ãŒãã³ã®ãšã©ãŒéç¥ãšå€ã®è¿åŽãå
±çšããªã (ã€ãŸãEOF==1ãNaNã¿ã
ããª
> ã®ã䜿ããªã)
>
> ã£ãŠãã®ããããã ãã©ãããããšã©ãŒãäžäœã«éç¥ããªãããšã
> åæã«æžããŠãããšæãããšã©ãŒãéç¥ããææ®µãšããŠreturn value
> ã䜿ãã®ã¯åã¯æå¹ã ãšæããå®éãEOF ã¯äŸ¿å©ã ãã
ããã¯è¿ãå€ãããšã©ãŒãè¿ãææ®µãšããŠäœ¿ããªãããšã©ãŒãããã§ãªãã
以å€ã®å€ãå«ããªãããè¿ãå€ã«å€ãå
¥ãããªãããšã©ãŒã¯å¥çµè·¯ã§è¿ãããš
èšã£ãŠããããããªãããšæããŸãã > Writing Solid Code
ãã®æ¬ã¯ library äœæè
ããã®å©çšè
ã§ãã programmer ãä¿¡ããªããšãã
æ¬ã ãšæããŸããã
ã ãããèªåã®èšèšãã library ãæãšå Žåã«ãã£ãŠã
- ãšã©ãŒãè¿ãå€ã«å«ããããå«ããªãã£ããã
- ãšã©ãŒã®å€å¥æ¹æ³ãéã£ããã
ãšããã£ãæ··ä¹±ãæããããªããšããããšãprogrammerã¯å¿
ãã²ã£ããã£ãŠ
ããŸãããšã
ããããããã¯ç¥ããªãã®ã§ãããMicrosofot ã® COM ã¯å
šãŠè¿ãå€ã®äž
ã«ã¯ãšã©ãŒãããã§ãªããã®æ
å ±ããå
¥ããªãã§ãã
# ãããŠãFAILED ã SUCCEEDED ãã®ãã¯ãã§å€±æ/æåã®å€å¥ãã§ããŸ
# ãã
--
---
Takashi SAKAMOTO (PXG0...@nifty.ne.jp)
In article <bfslmv$r39$1...@news522.nifty.com>, "Takashi SAKAMOTO" <PXG0...@nifty.ne.jp> writes
> ã¯ãå®å
šã«å®çŸããããšãããšå
šãŠ virtual machine ã®äžã§èµ°ãããŠ
> ææªã¯ virtual machine ã®åèµ·åãå¿
èŠã«ãªããŸãããïŒ
Unix ã§ã¯ããã®Virutal machine ã¯ããã»ã¹ãšåŒã°ãããã ãã©ãã
> # virtual machine ã®äœ¿ãããŒã¿ã¯å
šãŠæ¬äœã® database ã«ç»é²ããŠ
> # ãã€ã§ã rollback ã§ããããã«ããã®ããªã
æ¬äœãšã¯ãªããã?
> ãã®æ¬ã¯ library äœæè
ããã®å©çšè
ã§ãã programmer ãä¿¡ããªããšãã
> æ¬ã ãšæããŸããã
ãã®æ°åã¯ããã...
> ããããããã¯ç¥ããªãã®ã§ãããMicrosofot ã® COM ã¯å
šãŠè¿ãå€ã®äž
> ã«ã¯ãšã©ãŒãããã§ãªããã®æ
å ±ããå
¥ããªãã§ãã
> # ãããŠãFAILED ã SUCCEEDED ãã®ãã¯ãã§å€±æ/æåã®å€å¥ãã§ããŸ
> # ãã
ããã䟿å©ã§ãã?
ã©ãããWindows ã®ã¢ããªãèœã¡ãããåå ããã®ãããã«ããã
ãããªãããªãŒã£ãš...
"Shinji KONO" <ko...@ie.u-ryukyu.ac.jp> wrote in message
news:3988651...@insigna.ie.u-ryukyu.ac.jp...
> Unix ã§ã¯ããã®Virutal machine ã¯ããã»ã¹ãšåŒã°ãããã ãã©ãã
Unix ã§ãå
±æã¡ã¢ãªãããã¯ãã£ã±ãªãã§ process ãèœãšããšå±éºã ã£ããããã
ãšã¯ãªãã£ãã§ããããïŒ process ã§ã¯éçããããšæãã®ã§ããã
# å
šãŠã®è³æºãä»®æ³çãªãã®ã«ããŠãå®åšã®è³æºãšã¯äžååãé¢ããšãããã
# ãããšããã®ããªããšã
> æ¬äœãšã¯ãªããã?
ãã¿ãŸããããããVMware ãé ã«æãæµ®ãã¹ãŠ host os ãš guest os ã® host os
åŽãæ¬äœãšåæã«åŒãã§ããŸããã
> ããã䟿å©ã§ãã?
䟿å©ãšãããâŠå人ã§åæã«ã³ãŒããæžããŠããåã«ã¯æ¬äººã ãã®è²¬ä»»ã ãã©ã
ã°ã«ãŒãéçºãããšãªããšã颿°ã®åŒæ°ãè¿ãå€ãåœåèŠåã®ã«ãŒã«ãçµ±äžããŠ
ãããæ¹ãè¯ãã§ãããããšãã話ãªã ãã§ã¯ãªãã§ãããã⊠> Writing Solid
Code
# ã§ãæžãæ¹ã®æµåãæ°ã«å
¥ããªãããšåŸã
ã«ããŠè«äºã«ãªãããã§ããâŠ
# ããããå Žåã«ã¯ãã°ã«ãŒãã§ãŸãå¥ã®çµ±äžèŠè§£âŠçµ±äžèŠåãäœãã°ãããã
# ãšæãã®ã§ãã
> ã©ãããWindows ã®ã¢ããªãèœã¡ãããåå ããã®ãããã«ããã
> ãããªãããªãŒã£ãš...
âŠã©ããªã®ã§ãããïŒ ãããããããããã COM ãè€éã§é¢åãšããããšã®æ¹ã
倧ãããããªæ°ãããŸãã
# Windows ã®ã¢ããªã±ãŒã·ã§ã³å
šè¬ãèœã¡ããããšãªããšãåå 㯠COM ãšã¯é
# ããšããã«ããããã§ããâŠã
# COM ãšãããšãInternet Explorer ã Microsoft Office ãªã©ãé ã«æµ®ãã³ãŸãã
# ããšãDirectX ã COM ã«ãªã£ãŠããŸããã
"Shinji KONO" <ko...@ie.u-ryukyu.ac.jp> wrote in message
news:3988651...@insigna.ie.u-ryukyu.ac.jp...
> Unix ã§ã¯ããã®Virutal machine ã¯ããã»ã¹ãšåŒã°ãããã ãã©ãã
Unix ã§ãå ±æã¡ã¢ãªãããã¯ãã£ã±ãªãã§ process ãèœãšããšå±éºã ã£ããããã
ãã®å Žåã¯ãããã°ãªãã ããããããã°ææ³ãšããŠäœ¿ãã£ãŠããš
ãªãã ããª.... ãããã°ããæ®µéãšäœ¿ã段éãå¥ã£ãŠããèãã
ããã«ããã®ã¯çè§£ã§ããŸãããããªããçŽåŸã§ããªãã
In article <bft900$c99$1...@news521.nifty.com>, "Takashi SAKAMOTO" <PXG0...@nifty.ne.jp> writes
> Unix ã§ãå
±æã¡ã¢ãªãããã¯ãã£ã±ãªãã§ process ãèœãšããšå±éºã ã£ããããã
> ãšã¯ãªãã£ãã§ããããïŒ process ã§ã¯éçããããšæãã®ã§ããã
flock/lockf ãšãã ã£ããããã¯ã®äž»äœã¯ããã»ã¹ãªã®ã§ããã®
ããã»ã¹ãæ»ãã°è§£æŸãããŸãã
ãããã»ã¹ã®éçãã§ãã? ææ¥ã§èšè¿°åé¡ã§åºããããªããUnix
ã®ããã»ã¹ã®éçãããšã©ãŒåŠçã®èгç¹ãã1000åçšåºŠã§è¿°ã¹ãã
ãšã? ããŒããã§ãèªåã§ããã¡ãã£ãšç°¡åã«ã¯æžããªããªã
ããã»ã¹èªäœã¯ç°¡åã§ããããããã§ãããããããããªãã®ã¯ã
thread ãšäœµçšãããšãã§ãããã
> # å
šãŠã®è³æºãä»®æ³çãªãã®ã«ããŠãå®åšã®è³æºãšã¯äžååãé¢ããšãããã
> # ãããšããã®ããªããšã
ãã¡ã€ã«ãšãéä¿¡ããŒããšãI/Oããã€ã¹ãšããå®åšã®è³æºãšåã
é¢ãã®ã¯é£ãããšæããUnix ã ãšãã¡ã€ã«ãã£ã¹ã¯ãªãã¿ã¿ãã
ãªåå£ã¯ãããŸãããå°ãè¶³ããªããã§ãããã
ãšã©ãŒåŠçã¯ã
ã¢ããªãããã¯ã©ã€ãã©ãªèªäœãéå±€çã«äœãã
ãã®å Žããããã¯ãäžäœéå±€ã§åŠçãã
ã¿ããã«äœããªããšãã¡ãªã®ã¯åœç¶ãªãã ãã©ããªããªã
ã§ããªããããã®éå±€ã®äžã€ãšããŠããã»ã¹ãããããã ãã©ã
æè¿ã ãšããµã³ãããã¯ã¹ãšãããèŠããã§ããã
> # Windows ã®ã¢ããªã±ãŒã·ã§ã³å
šè¬ãèœã¡ããããšãªããšãåå 㯠COM ãšã¯é
> # ããšããã«ããããã§ããâŠã
ãŸãããã£ãšããšãè€éãªãã®ã«ãªããšãUnixã ãããWindows
ã ãããé¢ä¿ãªãã£ãŠè©±ãããã
In article <3988646...@insigna.ie.u-ryukyu.ac.jp>, Shinji KONO wrote:
>æ²³éçæ²» @ ççå€§åŠæ
å ±å·¥åŠã§ãã
>ããšããšã©ãŒã¯æªãããšã ã£ãŠã®ãåæãšããŠããã¿ããã
æªãããšãšèšãããïŒè£œåã«ã¯ïŒïŒæã£ãŠã¯ãªããªãããšïŒãšããèãæ¹ãª
ãã§ããããããïŒäººéã®èœåã§ã¯å®çŸäžå¯èœãªïŒïŒïŒ
>ãªããžã§ã¯ãæåãšãã³ãŒãã®åå©çšããããã¯ããã©ã°ã€ã³ãªã©ã
>å°å
¥ãããçŸåšã§ã¯ã
>
> åŠçãå®è¡ããåææ¡ä»¶ã¯ãå¿
ãããã§ãã¯ãã
>
>ã£ãŠã®ãå¿
é ã ãšæãããªã®ã§ãassert ã£ãŠã®ã¯çŸç¶ã«ãã£ãŠãª
>ããšæããŸãããã®æã®ã³ãŒãã¯æ®ãã¹ããªã®ãã
N. Wirth ããã䞻匵ããŠãŸãããïŒ
>ãããŠã
>
> ãšã©ãŒãã§ãã¯ã§å€±æãããšãã«ãããšåŒãåãã
>
>ããšãå¿
é ã ãšæãããã¡ããã絶察ã«åŸ©åž°ã§ããªããšã©ãŒã£ãŠã®
>ãããã®ã¯ãããã ãšæããã ãã©ããªããžã§ã¯ããšãã¡ã¢ãªããŒ
>ã«ãšãããã»ã¹ãšã䜿ãããšã«ãã£ãŠçµæ§é¿ãããããšæããã ã
>ã©ã
æåããããããã€ããã§èšèšããŠããã°ããªãæŸãããšæããŸãïŒãïŒã
ãã¯å€§ä»äºã§ãïŒäŸãã°ïŒã³ã³ãã€ã©ã®ãšã©ãŒã¡ãã»ãŒãžãé©åã«è¡šç€ºãã
äºãèãããšïŒã¡ã€ã³ã®ä»äºã®æ°åïœæ°ååã®å·¥æ°ã«ãªãã®ã§ã¯ïŒ
>ãšããããã§ãåã®ç«å Žã¯ã
>
> ãšã©ãŒåŠçãããªãããšãåæã®assertã¯ã補ååããªããããª
> ããã°ã©ã (ãããã¯ããã€ã¯ããœããã®å£²ã£ããåã¡ããã°ã¯
> ç¥ããæ¹é)ãåæã§ãããæä»£é
ãã§ãã£ãŠã䜿ã£ãŠã¯ãããªã
> ãã®ã ã
>
>ã£ãŠãªããã§ãã
åæã§ãããïŒPL æ³ãã³ãã³ãé©çšãã¹ããªãã§ãããïŒMS ã® OS ã®ãã°
ã®ããã§æ¥ã
倱ãããŠããæå®³ã¯äžçäžã§æ°çŸäžãã«äœã¯ããããïŒ
>Writing Sold Code ã«ã¯ãããäžã€ã
>
> ãµãã«ãŒãã³ã®ãšã©ãŒéç¥ãšå€ã®è¿åŽãå
±çšããªã (ã€ãŸãEOF==1ãNaNã¿ãããª
> ã®ã䜿ããªã)
>
>ã£ãŠãã®ããããã ãã©ãããããšã©ãŒãäžäœã«éç¥ããªãããšã
>åæã«æžããŠãããšæãããšã©ãŒãéç¥ããææ®µãšããŠreturn value
>ã䜿ãã®ã¯åã¯æå¹ã ãšæããå®éãEOF ã¯äŸ¿å©ã ãã
EOF ã¯ïŒäŸå€ã®äžçš®ã§ãã£ãŠïŒãšã©ãŒã§ã¯ãªããšæããŸããïŒ
>ãšã©ãŒãç¹å¥èŠããããšãééã£ãŠãããã ãããªãããã°ã©ã çè«
>çã«ãâ¥ã¯äŸ¿å©ã ãã
ã§ããïŒãšã©ãŒã¯ïŒèµ·ããã¯ãããªããã®ã§ã¯ãªãïŒèµ·ããã®ãåœããå
ã®ïŒäŸå€ã®äžçš®ãšããŠæ±ãã¹ããªãã§ãããïŒ
--
Hideki Kato <mailto:ka...@pop12.odn.ne.jp>
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
In article <3988654...@insigna.ie.u-ryukyu.ac.jp>, Shinji KONO wrote:
>æ²³éçæ²» @ ççå€§åŠæ
å ±å·¥åŠã§ãã
>
>ãã®å Žåã¯ãããã°ãªãã ããããããã°ææ³ãšããŠäœ¿ãã£ãŠããš
>ãªãã ããª.... ãããã°ããæ®µéãšäœ¿ã段éãå¥ã£ãŠããèãã
>ããã«ããã®ã¯çè§£ã§ããŸãããããªããçŽåŸã§ããªãã
ãããã°æ®µéãšäœ¿ã段éã§ã¯ïŒãã°ã®æ€åºãŸã§ã¯å
±éã ãã©åŸã®åŠçãç°ãª
ãïŒäŸãã°ïŒèšé²ããŠæ¢ãã â å埩ã詊ã¿ãïŒãšãïŒïŒãšããããšãªã®ã§
ã¯ãªãããããïŒ
>ãšã©ãŒåŠçã¯ã
>
> ã¢ããªãããã¯ã©ã€ãã©ãªèªäœãéå±€çã«äœãã
> ãã®å Žããããã¯ãäžäœéå±€ã§åŠçãã
>
>ã¿ããã«äœããªããšãã¡ãªã®ã¯åœç¶ãªãã ãã©ããªããªã
>ã§ããªããããã®éå±€ã®äžã€ãšããŠããã»ã¹ãããããã ãã©ã
Mac ã§ VirtualPC ã䜿ã£ãŠãé 㯠Windows ãã³ã±ãŠãå°ããªãã£ãããæ¥œ
ã§ããïŒç¬ïŒ
æåã®è³ªåã§ã¯è£œåã®äžã«assertãå ¥ãããšããªããšãèšã£ãŠãããããªã
> In article <bft900$c99$1...@news521.nifty.com>, "Takashi SAKAMOTO" <PXG0...@nifty.ne.jp> writes
> > Unix ã§ãå
±æã¡ã¢ãªãããã¯ãã£ã±ãªãã§ process ãèœãšããšå±éºã ã£ããããã
> > ãšã¯ãªãã£ãã§ããããïŒ process ã§ã¯éçããããšæãã®ã§ããã
>
> flock/lockf ãšãã ã£ããããã¯ã®äž»äœã¯ããã»ã¹ãªã®ã§ããã®
> ããã»ã¹ãæ»ãã°è§£æŸãããŸãã
mmapã§ç¢ºä¿ããã¡ã¢ãªã§ããã»ã¹å
±æã®mutexãšãã€ãããšãosãåèµ·åãã
ãããã®ãŸãŸã§ã¯åŸ©åž°ã§ããŸããããã®ãããªå ŽåãããŒã¿ã®æ§é ãå£ããŠã
ãŸã£ãŠããããšãå€ããããŒã¿ã®åæ§ç¯ãå¿
èŠãšãªãããšãããã§ããããäž
éšã®ããŒã¿ã¯ããäºåºŠãšåŸ©åž°ããããšãã§ããªãããç¥ããŸããã
ããããããã°ã©ã ã§ã¯å¶åŸ¡ãåã°ãªããšããã§ããã»ã¹ãæ»ãã§ããŸããšã
ããã©ããããããããŸãããåœç¶ã¯ãªãã£ã«ã«ãªã»ã¯ã·ã§ã³ã§ã¯ãã¹ãŠã®ã·
ã°ãã«ãå¶åŸ¡ããæäœéã®rollbackãããŠåæ§ç¯ã®æéãçãããŠçµäºããã
ãšã¯åœç¶ã§ãããã
ïŒassertãªããŠãèããåã°ãªãã
--
___ ããã¯ãå±±å¹è²ã®ãããŠãŒãã倧奜ãã§ã®ã
[[o o]] ãµãã£ãµãã£ãµã
'J' æ£®äž ã代宿§ ïŒïœïŒ®ïŒïŒ¯ïŒ³ è±å€«ïŒ ã¹ãã©ã¯ã©ãã
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37
ãªãŒãã³é¢æ°ã§ãã³ãã«ãããã£ãŠããŠãã¡ã€ã³ã®åŠç
ã§ã¯ããããã®é¢æ°ã«ãã®ãã³ãã«ãæž¡ããšããé ãã®
ã©ã€ãã©ãªãŒã£ãŠå€ãã§ãããã
ã§ãããšãã°DBMSãšãã ãšãããããã®é¢æ°ã倿®µã®ã¬
ã€ã€ãŒã§ã§ããŠããŠãäžããããã£ããã³ãã«ãå»¶ã
äž
ã®ã»ããŸã§ãªã¬ãŒã§æž¡ãããããšããããããŸããDBMS
ã®è«çæ§é ãç¥ã£ãŠããã¬ã€ã€ãŒããã®äžã®ISAMããã
ã·ã¥ãªã©ã®ã¢ã¯ã»ã¹ã¡ãœããã®ã¬ã€ã€ãŒãããã«ãã®äž
ã®ãã¡ã€ã«ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ã®ã¬ã€ã€ãŒã...ãšãã£
ããããã
ãããªãšãããã®èšè¿°åãæ£åœãªãã®ã§ãããã©ããã
ããšãã°èšè¿°åãNULLã ã£ããããªãããšããšããã®ã
ã¬ã€ã€ãŒããšã«æ¯åºŠæ¯åºŠèª¿ã¹ãã®ã¯ããªãããã®ããã
ãŸããããããããå Žåã£ãŠãäžã®ã»ãã¯assert()ã§ã
ãã®ã§ã¯?
ãã¡ããã¬ã€ã€ãŒããšã«ãã®èšè¿°åã«å¯ŸããŠã¬ã€ã€ãŒç¬
èªã®æ
å ±ãæãããŠãããããŠãåãã¬ã€ã€ãŒã§å¥ã®é¢
æ°ãã»ããããæ
å ±ãªã©ã«ã€ããŠã¯ãã§ãã¯ããã®ãåœ
ç¶ãªãã§ãããããã¯å¥ã®ã¬ã€ã€ãŒã§éè€ããŠãã§ãã¯
ãããããã§ã¯ãªãã§ããã...ã
--
倪ç°çŽ(Junn Ohta) (æ ª)ãªã³ãŒ/æ°æšªæµäºæ¥æ
oh...@sdg.mdd.ricoh.co.jp
ç§ã¯daemonå±ãããé·ãã®ã§ã話ãåã¿åããªãããç¥ããŸãããã
In article <bg2ana$isv$1...@ns.src.ricoh.co.jp>,
oh...@src.ricoh.co.jp (Junn Ohta) writes:
>
> ãããªãšãããã®èšè¿°åãæ£åœãªãã®ã§ãããã©ããã
> ããšãã°èšè¿°åãNULLã ã£ããããªãããšããšããã®ã
> ã¬ã€ã€ãŒããšã«æ¯åºŠæ¯åºŠèª¿ã¹ãã®ã¯ããªãããã®ããã
> ãŸããããããããå Žåã£ãŠãäžã®ã»ãã¯assert()ã§ã
> ãã®ã§ã¯?
ããŒããããã ãšã䜿ãç©ã«ãªããªãå Žåã¯çµæ§ãããŸãããšã«ãããåãç¶
ãããã©ãããŠããã以äžé²ãã ããã°ãã£ãŠå Žé¢ã§ããããçšåºŠã®æ·±ããŸã§
æ»ã£ãŠãå
¥ã£ãŠããåŠçã¯ãã£ã¡ããšã©ãŒãšããŠã¯ããé£ã°ããã£ãŠããšãè¡
ããªããšã
ïŒæéæ¢ãããåã®æå®³ãšãèšãããŸããããã
ïŒãŸããåååãšå»çæ©åšãšäº€éé¢ä¿ã«ã¯æãåºããªãããã«ããŠããŸããâŠ