Beyond simple API replacement Some platform differences resist simple solutions like direct API replacement A common case of this is when platform export different APIs to do the same thing An example in OpenSSH is login/logout recording Most platforms support one or more of utmp(x), wtmp(x), lastlog and btmp But they tend to pick different subsets of the possible fields E.g. skipping IPv6 support There is a standard API (pututxline), but It isn't widely supported It doesn't do everything we need