fuser(2)fuser(2)NAMEfuser - Reports PIDs and UIDs for files, file systems and/or the
devices attached to them.
SYNOPSIS
#include <sys/fuser.h>
int fuser(
char *file,
long flag,
struct f_user fuser_array[],
long sizeof_fuser_array );
PARAMETERS
Specifies the file name. Specifies one of the following values. If
none of the following are values are specified, the default is to match
open files. Matches only file ids. Provides mount point matching.
Matches deleted files on the mount point specified by file. Specifies
the array. Specifies the number of elements in the fuser array.
DESCRIPTION
The fuser function reports a list of PIDs and UIDs that are associated
with a specified file, file system, and/or the devices that are
attached to them.
The fuser function can report back additional information about
“matches” by ORing one of the following constants that can be passed
back in the member fu_flags: Current directory Current directory Parent
of the current directory At least one file open, but the number open is
not known. Executable image. Controlling terminal Trace At least one
file is mmapped
RETURN VALUES
On success, the fuser function returns the number of fuser_array ele‐
ments that were found. The contents of the structure are as follows:
typedef struct f_user {
pid_t fu_pid;
int fu_flags;
uid_t fu_uid; } f_user_t;
If an error has occurred, the fuser function returns -1 and sets errno
to indicate the error.
ERRORS
If the fuser function fails, errno may be set to one of the following
values: The array is not large enough to hold the number of array ele‐
ments returned or the array structure cannot be filled The file parame‐
ter specified does not exist
EXAMPLES
Open regular files and special files are matched using the flag parame‐
ter set at 0L. Thus, if process 127 and 3220 open the /home/try file
simultaneously and the fuser function is active, the PIDs and UIDs
associated with the home/try file are reported as in the following
example:
fuser("/home/try", 0L, fuser_array, \
(long) (sizeof (fuser_array)/sizeof(fuser_array[0])); Simi‐
larly, if the special device file /dev/ttyp2 is open by process
32, then that PID and its associated UID are reported as in the
following example:
fuser("/dev/ttyp2", 0L, fuser_array, \
(long) (sizeof (fuser_array)/sizeof(fuser_array[0]));
fuser(2)