From 5b2e6b2a90a1b9225c059b45d0c1b34ff31c8ef1 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Fri, 22 Jan 2010 05:09:10 +0000 Subject: [PATCH] Describe why pututxline() doesn't entirely conform to standards. --- lib/libc/gen/getutxent.3 | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/getutxent.3 b/lib/libc/gen/getutxent.3 index 58b12803c2c5..5098afede4c6 100644 --- a/lib/libc/gen/getutxent.3 +++ b/lib/libc/gen/getutxent.3 @@ -414,14 +414,32 @@ The .Fn endutxent , .Fn getutxent , .Fn getutxid , -.Fn getutxline , -.Fn pututxline +.Fn getutxline and .Fn setutxent functions are expected to conform to .St -p1003.1-2008 . .Pp The +.Fn pututxline +function deviates from the standard by writing its records to multiple +database files, depending on its +.Fa ut_type . +This prevents the need for special utility functions to update the other +databases, such as the +.Fn updwtmpx +function which is often available in other implementations. +It also tries to replace +.Dv DEAD_PROCESS +entries in the active sessions database when storing +.Dv USER_PROCESS +entries and no entry with the same value for +.Fa ut_id +has been found. +The standard always requires a new entry to be allocated, which could +cause an unbounded growth to the database. +.Pp +The .Fn getutxuser and .Fn setutxdb