Next: , Previous: System Portability, Up: Writing C   [Contents]


5.6 CPU´Ö¤Î°Ü¿¢À­

GNU¥·¥¹¥Æ¥à¤Ç¤µ¤¨¡¢CPU¥¿¥¤¥×´Ö¤Î°ã¤¤¤Î¤»¤¤¤Ç°Û¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£— Î㤨¤Ð¡¢¥Ð¥¤¥È½ç½ø¤ä¶­³¦¤ÎɬÍ×À­¤Î°ã¤¤¤Ê¤É¤À¡£¤³¤¦¤¤¤¦°ã¤¦¤ò°·¤¦¤³¤È¤ÏÀä ÂФËÉԲķç¤À¡£¤·¤«¤·¡¢int¤¬32¥Ó¥Ã¥È¤è¤ê¾®¤µ¤¤²ÄǽÀ­¤ò°·¤¦¤¿¤á¤ËÅØ ÎϤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£GNU¤Ç¤Ï16¥Ó¥Ã¥È¤Î¥Þ¥·¥ó¤Ï¥µ¥Ý¡¼¥È¤·¤Ê¤¤¡£

int¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤¬¤Þ¤¿¤½¤Î°ìÈÖ²¼¤Î¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë ¤È¤ß¤Ê¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤³¤ì¤Ï¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥Þ¥·¥ó¤Ç¤Ï¸í¤ê¤À¡£¤À¤« ¤é¡¢¼¡¤Î´Ö°ã¤¤¤ò¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£

int c;
…
while ((c = getchar()) != EOF)
  write(file_descriptor, &c, 1);

´Ø¿ô¤ò¸Æ¤Ö¤È¤­¡¢¤µ¤Þ¤¶¤Þ¤Ê·¿¤Î¥Ý¥¤¥ó¥¿´Ö¤ä¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô´Ö¤Ç¤Î°ã¤¤¤ò¿´ÇÛ ¤¹¤ëɬÍפϤʤ¤¡£¤Û¤È¤ó¤É¤Î¥Þ¥·¥ó¤Ç¤Ï¡¢¤¤¤º¤ì¤Ë¤»¤è°ã¤¤¤Ï¤Ê¤¤¡£°ã¤¤¤Î¤¢¤ë ¤ï¤º¤«¤Ê¥Þ¥·¥ó¤Ë¤Ä¤¤¤Æ¸À¤¦¤È¡¢¤½¤ì¤é¤ÎÁ´¤Æ¤¬ANSI C¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤ ¤ë¤Î¤Ç¡¢¤½¤ì¤é¤Î¥·¥¹¥Æ¥à¾å¤Ç¤½¤Î¥³¡¼¥É¤¬Æ°¤¯¤è¤¦¤Ë¡¢(ANSI C¤Ç¤À¤±»È ¤ï¤ì¤ë¤è¤¦¤Ë¾ò·ïÉÕ¤±¤µ¤ì¤¿)¥×¥í¥È¥¿¥¤¥×¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢À°¿ô¤È¥Ý¥¤¥ó¥¿¤Î°ú¿ô¤ò̵º¹ÊÌ¤ËÆ±¤¸´Ø¿ô¤ØÅϤ·¡¢¤¤¤«¤Ê¤ë¥·¥¹ ¥Æ¥à¤Ç¤â¥×¥í¥È¥¿¥¤¥×¤ò»È¤ï¤Ê¤¤¤Ç¤â¹½¤ï¤Ê¤¤¡£Î㤨¤Ð¡¢Â¿¤¯¤ÎGNU¥×¥í¥°¥é¥à ¤Ïprintf¤ä¤½¤ÎÎत¤Ë°ú¿ô¤ò¤É¤ó¤É¤óÅϤ¹¥¨¥é¡¼Êó¹ð´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤ë¡£

error (s, a1, a2, a3)
     char *s;
     int a1, a2, a3;
{
  fprintf (stderr, "error: ");
  fprintf (stderr, s, a1, a2, a3);
}

¼ÂºÝ¡¢¤³¤ì¤ÏÁ´¤Æ¤Î¥Þ¥·¥ó¤Çưºî¤·¡¢Â¾¤Î“Àµ¤·¤¤”¤ä¤êÊý¤è¤ê¤º¤Ã¤Èñ½ã¤À¡£ ¤½¤Î¤è¤¦¤Ê´Ø¿ô¤ËÂФ·¤Æ¥×¥í¥È¥¿¥¤¥×¤ò»È¤¦¤³¤È¤ò¤·¤Ê¤¤¤è¤¦¤Ë¡£

¤·¤«¤·¤Ê¤¬¤é¡¢ËÜÅö¤ËɬÍפȤ·¤Æ¤¤¤ë¤Î¤Ç¤Ê¤¤¤Ê¤é¡¢¥Ý¥¤¥ó¥¿¤òÀ°¿ô¤Ë¥­¥ã¥¹¥È ¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡£¤³¤ì¤é¤Î²¾Äê¤Ï¼Â¤Ë°Ü¿¢À­¤ò¸º¤é¤·¤Æ¤ª¤ê¡¢¤Û¤È¤ó¤É¤Î ¥×¥í¥°¥é¥à¤Ç¤Ï´Êñ¤ËÈò¤±¤é¤ì¤ë¡£¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤Ë¥­¥ã¥¹¥È¤¹¤ë¤³¤È¤¬ÉÔ²Ä ·ç¤Ê —¥¢¥É¥ì¥¹¤À¤±¤Ç¤Ê¤¯·¿¾ðÊó¤ò¤¢¤ë¥ï¡¼¥É¤Ë¼ý¤á¤ëLisp¥¤¥ó¥¿¡¼¥×¥ê¥¿¡¢¤Î ¤è¤¦¤Ê— ¾ì¹ç¤Ë¤Ï¡¢¤½¤¦¤·¤Æ¹½¤ï¤Ê¤¤¤¬¡¢°Û¤Ê¤ë¥ï¡¼¥É¥µ¥¤¥º¤ò°·¤¦ÌÀ¼¨Åª¤Ê ½àÈ÷¤ò¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£