XPG 2, SVID 2, Linux FSSTND 1.2
In XPG2 and SVID2 the function pututline() is documented to return void, and that is what it does on many systems (AIX, HPUX, Linux libc5). HPUX introduces a new function _pututline() with the prototype given above for pututline() (also found in Linux libc5).
All these functions are obsolete now on non-Linux systems. POSIX 1003.1-2001, following XPG4.2, does not have any of these functions, but instead uses
struct utmpx *getutxent(void);
struct utmpx *getutxid(const struct utmpx *);
struct utmpx *getutxline(const struct utmpx *);
struct utmpx *pututxline(const struct utmpx *);
The utmpx structure is a superset of the utmp structure, with additional fields, and larger versions of the existing fields. The corresponding files are often /var/*/utmpx and /var/*/wtmpx.
Linux glibc on the other hand does not use utmpx since its utmp structure is already large enough. The functions getutxent etc. are aliases for getutent etc.