docs/82508: misleading man page for basename/dirname
    Giorgos Keramidas 
    keramida at freebsd.org
       
    Thu Jun 23 13:00:28 UTC 2005
    
    
  
The following reply was made to PR docs/82508; it has been noted by GNATS.
From: Giorgos Keramidas <keramida at freebsd.org>
To: Vlad Skvortsov <vss at high.net.ru>
Cc: bug-followup at freebsd.org
Subject: Re: docs/82508: misleading man page for basename/dirname
Date: Thu, 23 Jun 2005 15:55:52 +0300
 On 2005-06-22 02:51, Vlad Skvortsov <vss at high.net.ru> wrote:
 > The man pages for both basename(3) and dirname(3) state that the
 > functions return pointers to the internal _static_ storage. However,
 > those functions actually perform malloc() call to allocate storage on
 > the first invocation. Thus, the memory pointer returned is actually a
 > pointer to internal but dynamically allocated storage.
 >
 > I don't know whether this violates standard or not, but the
 > documentation is misleading.
 
 The term 'static' here is a warning that these functions are not thread-safe.
 
 It does NOT mean that the ``bname'' object that is internal to basename() is
 actually an array declared as:
 
 	char bname[MAXPATHLEN];
 
 It merely means that multiple invocations of the function from concurrent
 threads may clobber each other's data, so some form of locking should be used
 around calls to basename() from threaded applications or the function should
 be avoided altogether.
 
    
    
More information about the freebsd-doc
mailing list