Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

bdoyle

macrumors newbie
Original poster
Nov 6, 2008
6
0
Anybody know if getmntinfo64() is reentrant?

Thanks,
Blade.
 

Cromulent

macrumors 604
Oct 2, 2006
6,817
1,102
The Land of Hope and Glory
GETMNTINFO(3) BSD Library Functions Manual GETMNTINFO(3)

NAME
getmntinfo -- get information about mounted file systems

LIBRARY
Standard C Library (libc, -lc)

SYNOPSIS
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>

int
getmntinfo(struct statfs **mntbufp, int flags);

int
getmntinfo64(struct statfs64 **mntbufp, int flags);

DESCRIPTION
The getmntinfo() function returns an array of statfs structures describing each currently mounted file
system (see statfs(2)). Likewise, the getmntinfo64() function returns an array of statfs64 structures
describing each currently mounted file system.

The getmntinfo() function passes its flags argument transparently to getfsstat(2), while the
getmntinfo64() function passes its flags argument transparently to getfsstat64().

RETURN VALUES
On successful completion, getmntinfo() and getmntinfo64() return a count of the number of elements in
the array. The pointer to the array is stored into mntbufp.

If an error occurs, zero is returned and the external variable errno is set to indicate the error.
Although the pointer mntbufp will be unmodified, any information previously returned by getmntinfo() or
getmntinfo64() will be lost.

ERRORS
The getmntinfo() and getmntinfo64() functions may fail and set errno for any of the errors specified
for the library routines getfsstat(2) or malloc(3).

SEE ALSO
getfsstat(2), mount(2), statfs(2), mount(8)

HISTORY
The getmntinfo() function first appeared in 4.4BSD.

BUGS
The getmntinfo() and getmntinfo64() functions write the array of structures to an internal static
object and returns a pointer to that object. Subsequent calls to getmntinfo() and getmntinfo64() will
modify the same object.

The memory allocated by getmntinfo() and getmntinfo64() cannot be free(3)'d by the application.

BSD June 9, 1993 BSD
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/getmntinfo.3.html
 

bdoyle

macrumors newbie
Original poster
Nov 6, 2008
6
0


The man page does not say directly but it does say:

BUGS
The getmntinfo() and getmntinfo64() functions write the array of struc-
tures to an internal static object and returns a pointer to that object.
Subsequent calls to getmntinfo() and getmntinfo64() will modify the same
object.

So, I am guessing that means it is not reentrant. But I was hoping I could get a Yes/No confirmation from an expert. For all I know theres a mutex already in place.

Thanks,
Blade.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.