ããããprintf()ãããã°ãããªãçç±
ããã°ã©ãã¨ããè·æ¥ã«ã¤ãã¦ããã25å¹´ãããã«ãªãã®ã§ãããããã®éã«ã³ã³ãã¥ã¼ã¿ã®ã³ã¹ãããã©ã¼ãã³ã¹ã¯ãããããã ã¼ã¢ã®æ³åã«å¾ã£ã¦ã10ä¸åã100ä¸åãããåä¸ãããã«ãããããã¥ããããã°ã®æ¹æ³ã¨ãããã®ã®åçãªå¤åã¯ã»ã¨ãã©ã¿ãããªãã
ããã°ã©ãã³ã°å ¥éæ¸ã§ã¯ããããã°ã«ã¤ãã¦ãã»ã¨ãã©è°è«ããã¦ããªãããä»®ã«ãµãããã¦ãã¦ãããããªããªæ¹æ³ã¨ããããããªãéªéºã«ãã¤ãããã¦ããããããããã°ã©ãã®å¤ãã®æéããããã°ã«ã¤ããããã¦ããã¨ãã¦ãã ã
ãã¾ãã¾æå ã«ãã£ããCå®è·µããã°ã©ãã³ã°(ISBN4-900900-64-8)ã¨ãã10å¹´ãããåã«è²·ã£ãåèæ¸ã§ã¯ã450ãã¼ã¸ã®ãã¡ãããã¬ã®å©ç¨ã«ã¤ãã¦ã¯ã4è¡ã»ã©è¨è¿°ãããããã£ã4è¡ã§ããã診æç¨ã®printf()ãæ¿å ¥ããã¨ãããã¨ã¯3ãã¼ã¸ã«ããã£ã¦è¨è¿°ããã¦ããã®ã«ã ã
æµç³ã«21ä¸ç´ã«ãªã£ã¦printf()ãããã°ããªãããã¨æãã®ã ãã綺éºãªIDEã§ããã¬ã¼ã¯ãã¤ã³ããè¨å®ããè¯éºã«ãããã°ããã¦ãã姿ã¨ããã®ããã©ããããä¸è¬çãã¯ããããªãããprintf()ãããã°ã¯ããããªãã®ãã¨æãã
æ°åã§å ¥ç¤¾ããã¨ããã§ã¯ãå 輩ããããã°ã®ã¤ãããæãã¦ãããã®ã§ãprintf()ãããã°ã®æªå¼ã«ãã¾ããã¨ã¯ãªãã£ãã®ã ãããªãã§ãprintf()ãããã°ããããããªãã®ãèãã¦ã¿ãã
確ãã«printf()ã¯ãæ軽ã§ãããå¤æ°ã®å¤ã表示ããã®ã«ããã»ã©ãæ軽ãªäºã¯ãªããCã®æç§æ¸ã®æåã®ãµã³ãã«ã¯'Hello World'ã§ãããããããããããã®ééãã®ãããªæ°ãããªãã§ããªããã
ä»äºã§ä½ã£ã¦ãããã®ã¯ããããã®å ´åãã½ããã¦ã§ã¢è£½å(ã³ã³ãã¤ã©ããã¼ã¿ãã¼ã¹ç®¡çã·ã¹ãã ãOSãªã©)ãªã®ã§ãã¡ãã£ã¨ãããã°ããã®ã«printæãåãã¦ã¿ããã¨ãããã¨ã«ã¯ããªããªãã£ãã¨ããäºæ ããã£ãã
ãã«ãã«å½æã®ãã·ã³ã§æ°10åããããã¨ãªãã¨ããæ°æ¥½ã«ãã®ãããªäºã¯ã§ããªãããããã¬ã使ãã®ãåºæ¬ä¸ã®åºæ¬ã§ãããæ¨ä»ã®ã¹ã¯ãªããè¨èªå ¨çã®å ´åããããããã«ããªãã¦ãããã¨ã¯åãããå¿ è¦ãªãã®ã§ãprintãã¦æ§åãè¦ã¦ã試è¡é¯èª¤ãã¦ãç解ãæ·±ããã¨ããããã»ã¹ãããªãã¨ãªãããããªãã§ããªãããæ§æ¥åã®ãã«ãããã¹ãããããã°ã¨ããããã»ã¹ã§ã¯ãã«ãã®ã³ã¹ãããããããé«ãããã
ãã¼ãã¦ã§ã¢ãé«éåãããã ããããã«ããªãã¦ããã®ã¯makeä¸çºã ãããæ©æ¢°åã使ããã¨ãã話ã«ãªãã®ã§ãããããã¼ãã¦ã§ã¢ãé«éåããåãã½ããã¦ã§ã¢ãè¤éåããçµæã¨ãã¦è¥å¤§åãã¦ãã«ãæéãããã«æ¯ä¾ãã¦ãããããã«ãªã£ã¦ããã¯ã巨大ã½ããã¦ã§ã¢ã®ãã«ãæéã¯ãã»ã¼ä¸å®ã¨ããç®èãªçµæã«ãªã£ã¦ããã
Linuxãªãããã¢ã¸ã¥ã¼ã«ããã©ã¤ãã¼ããã³ã³çã«ããã¨ãå¹³æ°ã§ãä½10åããã«ãã«ããã£ã¦ãã¾ãã
ã¨ãããã¨ã§ã使ããã¦ã®ããã°ã©ã ãå°è¦æ¨¡ãªããã°ã©ã ãªãã¾ã ãããã¡ãã£ã¨ããè¦æ¨¡ã®ãã®ããåç¨ã½ããã¦ã§ã¢ã®å ´åãprintãããã°ã¨ããã®ã¯ãå§ãã§ããªããã¨ãããããããªãã
ããã§ããkernelã®ããã«ä¾¿å©ãªãããã¬ã¨ããã®ãç°¡åã«æã«ã¯ãããªãå ´åãã©ããã¦ãè¦æè¦æã«printkãªããã®ãåãè¾¼ãã§ãããã°ãããã¨ãããããã¢ããªã±ã¼ã·ã§ã³ã®å ´åã¯ã便å©ãªãããã¬ã¯ããã®ã§ãããã使ããªãæã¯ãªããã¨ããã使ãã ãããããã¼ã¯ã
å¦çã®ããã¯ããããã°ã®æ¹æ³ã¨ãããã¹ã¿ã¤ã«ãå®ã«å ´å½ããçã§ãé©å½ã«printæãåãè¾¼ãã§ç¶æ ã確èªãããã¹ãããã試è¡é¯èª¤ãã¦ãããã¡ã«ãã©ãããããã°çã§ãã©ããæ£å¼çããããããããªããªã£ã¦ããããã°ãã¦ãããã ããã°ããã£ãã¨ä½ãè¾¼ãã§ããã®ã ããä½ããã£ã¦ããããããããªãã¨ãããã¨ãè¯ããã£ãã
ãããã°ã®æ¹æ³ããããã¬ã使ããã¨ãåºæ¬ã«ãªãã¨ãã©ãã§ãã¬ã¼ã¯ãã¤ã³ããè¨å®ããã®ããã©ã®å¤æ°ã®å¤ã確èªããã®ããã¨ããã¹ã¿ã¤ã«ã«ãªã£ã¦ãã¦ãããã¡ã£ã¨ã·ã¹ãããã£ãã¯ã«ãªã£ã¦ãããããªæ°ãããããããªãã¨ããããã®ããããªããããã°æãåãè¾¼ãã ãã¼ã¸ã§ã³ã管çããã¨ãããã¾ã£ããéçç£çãªãããããã«åé¡ãè¤éåãããã¨ã¯ãã¦ããªãåã ãã§ãããããã°ã«å°å¿µã§ããã
ãããã°å¯¾è±¡ã®ããã°ã©ã ãæ£ããç解ããããã«ã¯ããã®ããã°ã©ã ã¯å¤æ´ãã¦ã¯ãããªãã®ã§ãããåä½ãèå¿å¦æã«ç解ããããã«ã1ãã¤ãããã¨ãããã£ã¦ã¯ãããªãã®ã§ãããããã¦ããã®ããã«ãããã¬ã使ãã¨ãããã¨ã«ãªãã
ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã®å ´åã¯ãããã§ãããã®ã§ãããã幸ããªãã¨ã«ã«ã¼ãã«ã®åéã«ããã¦ãæ¨ä»ã§ã¯kprobe/jprobe/systemtapãªã©ã®ããã¼ãç¨ãã¼ã«ãé²æ©ãããããã§ãprintk()ã«ããããã¨ãªããããç¨åº¦ã¾ã§ããããã¤ãããã¨ãå¯è½ã«ãªã£ã¦ãããã¾ããoprofileãªã©ã®ãããã¡ã¤ãªã³ã°ãã¼ã«ã«ãã£ã¦ã½ã¼ã¹ã³ã¼ããå¤æ´ãããã¨ãªããããã¡ã¤ãªã³ã°ãã¼ã¿ã®è¨æ¸¬ãæ軽ã«åºæ¥ãããã«ãªã£ã¦ãã¦ããã
ãããã°ããã¹ããããã¨ãã«ã¯ãã½ã¼ã¹ã³ã¼ããå¤æ´ãã¦ã¯ãããªãããããã°ãããããã«printæãåããããªã©ã¨ããã®ã¯ä»¥ã¦ã®ã»ãã§ããã(1)ãã«ãã®ã³ã¹ãããããã(2)ãããã°çã¨æ£å¼çã¨ããè¤æ°ã®ãã®ã管çããã³ã¹ããããããåé¡ãããã¥ãã«è¤éåãã¦ããã(3)ãããã¬ãªã©ã®æ©æ¢°åã使ãã®ãæ£ãã姿ã§ããã
ã¾ãããã¼ãã¼ãã¨ãæ¸ãã¨ããããã¬ããªãç°å¢ãããã¨ããã¿ã¤ãã³ã°çãªåé¡ã¯ãããã¬ã§ã¯ãããªãã¨ãè¨ã人ãåºã¦ããã®ã§ãããããã¼ãã¼ç°å¢ã®å ´åã§ããã½ã¼ã¹ã³ã¼ããå¤æ´ããªãã§ãããã°ããæ¹æ³ãèãããªããæ§ç¯ããã®ãæ£ããã¢ããã¼ãã ã¨æãã