utmp

Autres langues

Langue: ja

Version: 2004-10-31 (openSuse - 09/10/07)

Section: 5 (Format de fichier)

̾Á°

utmp, wtmp - ¥í¥°¥¤¥óµ­Ï¿

½ñ¼°

#include <utmp.h>

ÀâÌÀ

utmp ¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤Ç¡¢¸½ºß郎¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¤«¤È¤¤¤¦¾ðÊó ¤¬ÆÀ¤é¤ì¤ë¡£¤¿¤À¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à¤¬ utmp ¥Õ¥¡¥¤¥ë¤ò ¹¹¿·¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¤½¤ì°Ê¾å¤Î¥æ¡¼¥¶¡¼¤¬ ¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

·Ù¹ð: ¿¤¯¤Î¥·¥¹¥Æ¥à¥×¥í¥°¥é¥à¤¬¤½¤ÎÀ°¹çÀ­¤Ë (¶ò¤«¤Ë¤â) °Í¸¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ utmp ¥Õ¥¡¥¤¥ë¤Ï½ñ¤­¹þ¤ß²Äǽ¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ utmp ¥Õ¥¡¥¤¥ë¤ò ÉÔÆÃÄê¤Î¥æ¡¼¥¶¡¼¤«¤é½ñ¤­¹þ¤ß²Äǽ¤Ê¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤È¡¢ ¥·¥¹¥Æ¥à¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òµ¶Â¤¤µ¤ì¤¿¤ê¡¢¥·¥¹¥Æ¥à¥Õ¥¡¥¤¥ë¤Î ²þ¤¶¤ó¤ò¼õ¤±¤ë¤È¤¤¤Ã¤¿¥ê¥¹¥¯¤ò¤ª¤«¤¹»ö¤Ë¤Ê¤ë¡£

¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¼¡¤Î ¤è¤¦¤Ê¹½Â¤ÂΤò»ý¤Ä¥¨¥ó¥È¥ê¤Î·«¤êÊÖ¤·¤«¤é¤Ç¤­¤Æ¤¤¤ë¡£ (¤³¤³¤Ëµ­½Ò¤·¤Æ¤¢¤ë¤Î¤Ï´ö¤Ä¤«¤ÎÂç¤Þ¤«¤ÊÄêµÁ¤Î¤ß¤Ç¡¢ ¾ÜºÙ¤Ï libc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤êÊѤï¤ë»ö¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë):






#define UT_UNKNOWN      0

#define RUN_LVL         1

#define BOOT_TIME       2

#define NEW_TIME        3

#define OLD_TIME        4

#define INIT_PROCESS    5

#define LOGIN_PROCESS   6

#define USER_PROCESS    7

#define DEAD_PROCESS    8

#define ACCOUNTING      9



#define UT_LINESIZE     12

#define UT_NAMESIZE     32

#define UT_HOSTSIZE     256



struct exit_status {

    short int e_termination;    /* process termination status */

    short int e_exit;           /* process exit status */

};



struct utmp {

    short ut_type;              /* type of login */

    pid_t ut_pid;               /* PID of login process */

    char ut_line[UT_LINESIZE];  /* device name of tty - "/dev/" */

    char ut_id[4];              /* init id or abbrev. ttyname */

    char ut_user[UT_NAMESIZE];  /* user name */

    char ut_host[UT_HOSTSIZE];  /* hostname for remote login */

    struct exit_status ut_exit; /* The exit status of a process

                                   marked as DEAD_PROCESS */



    /* ut_session ¤È ut_tv ¥Õ¥£¡¼¥ë¥É¤Ï¡¢32¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤È

       64¥Ó¥Ã¥È¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¤ÇƱ¤¸¥µ¥¤¥º¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

       ¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢32¥Ó¥Ã¥È¤È64¥Ó¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢

       ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë */



#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32

    int32_t ut_session;         /* Session ID, used for windowing */

    struct {

        int32_t tv_sec;         /* Seconds */

        int32_t tv_usec;        /* Microseconds */

    } ut_tv;                    /* Time entry was made */

#else

     long int ut_session;        /* Session ID, used for windowing */

     struct timeval ut_tv;       /* Time entry was made */

#endif



    int32_t ut_addr_v6[4];       /* IP address of remote host */

    char __unused[20];           /* Reserved for future use */

};



/* Backwards compatibility hacks.  */

#define ut_name ut_user

#ifndef _NO_UT_TIME

#define ut_time ut_tv.tv_sec

#endif

#define ut_xtime ut_tv.tv_sec

#define ut_addr ut_addr_v6[0]



¤³¤Î¹½Â¤ÂΤ«¤é¥æ¡¼¥¶¡¼¤Î»È¤Ã¤Æ¤¤¤ëüËö¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë̾¡¢ ¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó̾¡¢ (time(2) ·Á¼°¤Ç¤Î)¥í¥°¥¤¥ó»þ¹ï¤¬¤ï¤«¤ë¡£Ê¸»úÎó¥Õ¥£¡¼¥ë¥É¤Ï¡¢ ¥Õ¥£¡¼¥ë¥É¤ÎŤµ¤è¤êʸ»úÎó¤¬Ã»¤¤¾ì¹ç¤Ë¤Ï¡¢'\0' ¤Ë¤è¤Ã¤Æ½ªÃ¼¤µ¤ì¤ë¡£

ºÇ½é¤Î¥¨¥ó¥È¥ê¤Ï init(8) ¥³¥Þ¥ó¥É¤¬ inittab(5) ¤ò½èÍý¤¹¤ë¤³¤È¤Çºî¤é¤ì¤ë¡£ ¤¢¤ë¥¨¥ó¥È¥ê¤ò½èÍý¤¹¤ëÁ°¤Ë¡¢ init(8) ¤Ï ut_type ¤ò DEAD_PROCESS ¤Ë½é´ü²½¤¹¤ë¡£ ¥ì¥³¡¼¥É¤Î ut_type ¤¬ DEAD_PROCESS ¤È RUN_LVL ¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢ ¤«¤Ä PID ¤¬ ut_pid ¤Ç¤¢¤ë¥×¥í¥»¥¹¤¬¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ut_user, ut_host, ut_time ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤·¤Æ½é´ü²½¤ò¹Ô¤¦¡£ ɬÍ×¤Ê ut_id ¤ò»ý¤Ä¶õ¤Î¥ì¥³¡¼¥É¤ò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ init ¤Ï¿·¤·¤¤¥ì¥³¡¼¥É¤òºî¤ë¡£inittab ¤«¤é ut_id ¤òÀßÄꤷ¡¢ ut_pid ¤ª¤è¤Ó ut_time ¤ò¸½ºßÃͤˡ¢ ut_type ¤ò INIT_PROCESS ¤ËÀßÄꤹ¤ë¡£

getty(8) ¤Ï pid ¤Ç¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ ut_type ¤ò LOGIN_PROCESS ¤ËÊѹ¹¤·¡¢ ut_time ¤ò¹¹¿·¤·¡¢ut_line¤òÀßÄꤷ¤¿¸å¡¢Àܳ¤¬³ÎΩ¤µ¤ì¤ë¤Î¤òÂԤġ£ login(8) ¤Ï¥æ¡¼¥¶¡¼Ç§¾Ú¤¬½ªÎ»¤¹¤ë¤È¡¢ ut_type ¤ò USER_PROCESS ¤ËÊѹ¹¤·¡¢ ut_time ¤ò¹¹¿·¤·¡¢ut_host ¤È ut_addr¤òÀßÄꤹ¤ë¡£ getty(8) ¤È login(8) ¤Ë¤è¤ê°Û¤Ê¤ë¤¬¡¢ ut_pid ¤ÎÂå¤ï¤ê¤Ë ut_line ¤ò»È¤Ã¤Æ¥ì¥³¡¼¥É¤ÎÆÃÄ꤬¹Ô¤ï¤ì¤ë¤³¤È¤â¤¢¤ë (ut_pid ¤ò»È¤¦Êý¤¬Ë¾¤Þ¤·¤¤) ¡£

init(8) ¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¢ ut_pid ¤ò¥­¡¼¤È¤·¤Æ utmp ¤Î¥¨¥ó¥È¥ê¤òÆÃÄꤷ¡¢ ut_type ¤ò DEAD_PROCESS ¤ËÀßÄꤷ¡¢ ut_user, ut_host, ut_time ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¡£

xterm(1) ¥³¥Þ¥ó¥É¤ä¾¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï ľÀÜ USER_PROCESS ¤Î¥ì¥³¡¼¥É¤òºî¤ê¡¢ /dev/ttyp%c ¤ÎºÇ¸å¤Î2ʸ»ú¤«¡¢ /dev/pts/%d ¤Î p%d ¤ò»È¤Ã¤Æ ut_id ¤ÎÃͤòÀ¸À®¤¹¤ë¡£ ¤³¤Î id ¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬ DEAD_PROCESS ¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ë¤ÏºÆÍøÍѤ·¡¢ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¿·¤·¤¤¥¨¥ó¥È¥ê¤¬ºî¤é¤ì¤ë¡£ ²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥×¥í¥»¥¹½ªÎ»»þ¤Ë DEAD_PROCESS ¤ÈÀßÄꤷ¡¢ ¤µ¤é¤Ë ut_line, ut_time, ut_user, ut_host ¤ò¥Ì¥ë¥Ð¥¤¥È¤Ç¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¾©Î夵¤ì¤Æ¤¤¤ë¡£

telnetd(8) ¤Ï LOGIN_PROCESS ¤òÀßÄꤹ¤ë¤À¤±¤Ç¤è¤¯¡¢ »Ä¤ê¤Î½èÍý¤ÏÄ̾ïÄ̤ê login(8) ¤ËǤ¤»¤ì¤Ð¤è¤¤¡£ telnet ¤Î¥»¥Ã¥·¥ç¥ó¤¬½ªÎ»¤·¤¿¸å¡¢Á°½Ò¤Î¤è¤¦¤Ë telnetd(8) ¤¬ utmp ¤Î¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë¡£

wtmp ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤Î¥í¥°¥¤¥ó¤È¥í¥°¥¢¥¦¥È¤¬µ­Ï¿¤µ¤ì¤ë¡£ ¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¥í¥°¥¢¥¦¥ÈºÑ¤ÎüËö¤Ç¥æ¡¼¥¶¡¼Ì¾¤¬¥Ì¥ë¤È¤Ê¤ë¤³¤È°Ê³°¤Ï utmp ¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¢¤ë¡£ ¥æ¡¼¥¶¡¼Ì¾¤¬ shutdown ¤â¤·¤¯¤Ï reboot ¤Ç¤¢¤ë üËö̾ ~ ¤Ï¥·¥¹¥Æ¥à¤ÎÄä»ß (shutdown) ¤Þ¤¿¤ÏºÆµ¯Æ° (reboot) ¤ò°ÕÌ£¤¹¤ë¡£¤Þ¤¿¤½¤ÎüËö̾¤¬ | ¤È } ¤ÎÂÐ¤Ï date(1) ¥³¥Þ¥ó¥É¤ÇÊѹ¹¤·¤¿¿·¡¿µì¤Î¥·¥¹¥Æ¥à»þ¹ï¤òµ­Ï¿¤·¤Æ¤¤¤ë¡£ wtmp ¥Õ¥¡¥¤¥ë¤Ï login(1) ¡¢ init(1) ¤ä¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Î getty(8) ¤Ë¤è¤ê´ÉÍý¤µ¤ì¤Æ¤¤¤ë¡£ ¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤Ï¤¤¤º¤ì¤â¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤ËºîÀ®¤·¤¿¤ê¤·¤Ê¤¤¤Î¤Ç¡¢ ¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë»ö¤Ç¾ðÊó¤Îµ­Ï¿ (record-keeping) ¤ò»ß¤á¤ë»ö¤¬¤Ç¤­¤ë¡£

Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¤Ï¡¢ biarch ¤Ê¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¡¢¤Ä¤Þ¤ê 32¥Ó¥Ã¥È¤È 64¥Ó¥Ã¥È¤ÎξÊý¤Î ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤Ç¤­¤ë¥·¥¹¥Æ¥à (x86-64, ppc64, s390x ¤Ê¤É) ¤Ç¤Ï¡¢ ut_tv ¤Î¥µ¥¤¥º¤Ï 32¥Ó¥Ã¥È¥â¡¼¥É¤È 64¥Ó¥Ã¥È¥â¡¼¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£ ut_session ¤È ut_time ¤â¡¢Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤ÏƱÍͤËƱ¤¸¥µ¥¤¥º ¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢32¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È 64¥Ó¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó ¤Î´Ö¤Ç¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤È¶¦Í­¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ ut_tv ¤Ï struct timeval ¤ÈƱ¤¸¥µ¥¤¥º¤È¤Ï¸Â¤é¤Ê¤¤¤Î¤Ç¡¢






gettimeofday((struct timeval *) &ut.ut_tv, NULL);

¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ °Ê²¼¤Î¤è¤¦¤Ë³Æ¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ëÊýË¡¤¬¿ä¾©¤µ¤ì¤ë:






struct utmp ut;

struct timeval tv;



gettimeofday(&tv, NULL);

ut.ut_tv.tv_sec = tv.tv_sec;

ut.ut_tv.tv_usec = tv.tv_usec;

¥Õ¥¡¥¤¥ë

/var/run/utmp
/var/log/wtmp

½àµò

Linux ¤Ç¤Î utmp ¤Î¥¨¥ó¥È¥ê¤Ï v7/BSD ¤ä System V ¤Î¤¤¤º¤ì¤Ë¤â½àµò¤·¤Æ¤¤¤Ê¤¤: ¤½¤ÎξÊý¤¬º®ºß¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£v7/BSD ¤Ç¤Ï¤è¤ê¾¯¤·¤Î¹àÌܤ·¤«¤Ê¤¤; ¤â¤Ã¤È¤â½ÅÍפʤ³¤È¤Ï¡¢ut_type ¤¬Ìµ¤¤¤³¤È¤Ç¤¢¤ë¡£ ¤½¤Î¤¿¤á v7/BSD ·Ï¤Î¥×¥í¥°¥é¥à¤Ç¤Ï (¤¿¤È¤¨¤Ð) »à¤ó¤À¾õÂ֤Υ¨¥ó¥È¥ê¤ä ¥í¥°¥¤¥ó¾õÂ֤Υ¨¥ó¥È¥ê¤Þ¤Çɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤Ã¤¿¡£ ¤µ¤é¤Ë¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¡£ BSD ¤ËÀßÄê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤Î¤Ï ut_id ¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ Linux (System V ·Ï)¤Ç¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òɬÍפȤ»¤º ¥»¥Ã¥·¥ç¥óÍѤΥ¹¥í¥Ã¥È¤ò³ä¤êÅö¤Æ¤ë¤Î¤Ç¡¢°ìöÀßÄê ¤µ¤ì¤Æ¤·¤Þ¤¦¤È¥ì¥³¡¼¥É¤Î ut_id ¤Ï·è¤·¤ÆÊѹ¹¤µ¤ì¤Ê¤¤¡£ ut_id ¤ò¥¯¥ê¥¢¤¹¤ë¤È¶¥¹ç¾õÂ֤ˤª¤Á¤¤¤ê¡¢ utmp ¤Î¥¨¥ó¥È¥ê¤ò²õ¤·¤¿¤ê¡¢ÀøºßŪ¤Ê¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ System V ¤Ç¤Î¼è¤ê·è¤á¤Ç¤ÏɬÍפȤϤµ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¾åµ­¹àÌܤò¥Ì¥ë¥Ð¥¤¥È¤Ç ¥¯¥ê¥¢¤·¤Æ¤ª¤¯¤Î¤Ï¡¢BSD ¤Ç¤Î¼è¤ê·è¤á¤òÁ°Äó¤È¤·¤Æ¤¤¤Æ¡¢ ¤«¤Ä utmp ¤ò¹¹¿·¤·¤Ê¤¤Â¿¤¯¤Î¥×¥í¥°¥é¥à¤¬Æ°¤¯¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ Linux ¤Ç¤Ï¤³¤³¤Þ¤Çµ­½Ò¤·¤Æ¤­¤¿¤è¤¦¤Ë¡¢¹ÔÆâÍƤÎɽ¼¨¤Ï BSD ¤Î´·Îã¤Ë½¾¤Ã¤Æ¤¤¤ë¡£

System V ¤Ç¤Ï ut_type ¤òÌÜ°õ¤Ë¤·¤¿¤ê¡¢¤¿¤È¤¨¤Ð "new time" ¤Î¤è¤¦¤Ê ÄÌÃÎ¥á¥Ã¥»¡¼¥¸¤òµ­Ï¿¤¹¤ë¤¿¤á¤Î¤ß¤Ë»È¤Ã¤Æ¤¤¤ë¡£ UT_UNKNOWN ¤Ï Linux ¤Çºî¤é¤ì¤¿¤â¤Î¤Î¤è¤¦¤Ç¤¢¤ë¡£ ACCOUNTING ¤È¤¤¤¦¼ïÎà¤Ï Linux ¤Ë¤Ï¸ºß¤·¤Ê¤¤¡£ System V ¤Ë¤Ï ut_host ¤â ut_addr_v6 ¤â¸ºß¤·¤Ê¤¤¡£

¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç utmp ¤Ø¤Îµ­Ï¿¤ò»ß¤á¤é¤ì¤ë ¾¤ÎÍÍ¡¹¤Ê¥·¥¹¥Æ¥à¤È¤Ï°ã¤¤¡¢Linux ¤Ç¤Ï utmp ¥Õ¥¡¥¤¥ë¤òɬ¤º¤ª¤¤¤Æ ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ who(1) ¥³¥Þ¥ó¥É¤¬µ¡Ç½¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ utmp ¥Õ¥¡¥¤¥ë¤ÎÁ´¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÆɤ߼è¤êµö²Ä¤òÀßÄꤷ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£

utmp ¹½Â¤ÂÎ¤Ï libc5 ¤«¤é libc6 ¤ÇÊѹ¹¤µ¤ì¤¿¡£¤½¤Î¤¿¤áÀΤΠlibc5 ¤Î¹½Â¤ÂÎ ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ï /var/run/utmp ¤ä /var/log/wtmp ¥Õ¥¡¥¤¥ë¤ò²õ¤·¤Æ¤·¤Þ¤¦¡£

Ãí°Õ

¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥Þ¥·¥ó¤Ë°Í¸¤¹¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤¿ ¥Þ¥·¥ó¤â¤·¤¯¤ÏƱ°ì¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥Þ¥·¥ó¾å¤Ç¤Î¤ß½èÍý¤¹¤ë»ö¤ò¿ä¾©¤¹¤ë¡£

32¥Ó¥Ã¥È¤È64¥Ó¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎξÊý¤ò¼Â¹Ô¤Ç¤­¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à (x86-64, ppc64, s390x Åù) ¤Ç¤Ï¡¢32¥Ó¥Ã¥È¥â¡¼¥É¤È64¥Ó¥Ã¥È¥â¡¼¥É¤Ç ¹½Â¤ÂÎ utmp ¤Î³Æ¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤òƱ¤¸¤Ë¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤ÅÀ¤Ë α°Õ¤¹¤ë¤³¤È¡£ ¤½¤Î¤¿¤á¤Ë¤Ï¡¢ ut_session ¤ò int32_t ·¿¤Ë¡¢ ut_tv ¤ò 2¤Ä¤Î int32_t ·¿¤Î¥Õ¥£¡¼¥ë¥É tv_sec , tv_usec ¤ò»ý¤Ä¹½Â¤ÂΤËÊѹ¹¤¹¤ì¤Ð¤è¤¤¡£ (¤³¤Î¾ì¹ç¡¢ut_tv ¤Ë¥Ç¡¼¥¿¤òÆþ¤ì¤ë¤Ë¤Ï¡¢ËÜÅö¤Î timeval ¹½Â¤ÂΤ˻þ´Ö¤ò¼èÆÀ¤·¤Æ¤«¤é¡¢ ut_tv ¤Î 2 ¥Õ¥£¡¼¥ë¥É¤Ë¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë)

¥Ð¥°

¤³¤Î man ¥Ú¡¼¥¸¤Ï libc5 ¤Ë´ð¤Å¤¤¤Æºî¤é¤ì¤Æ¤¤¤Æ¡¢ ºÇ¿·¤Î¤â¤Î¤Ç¤Ï°ã¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

´ØÏ¢¹àÌÜ

ac(1), date(1), last(1), login(1), who(1), getutent(3), updwtmp(3), init(8)