MEDIA_FINDNAME(3VOLMGT) Volume Management Library Functions


NAME


media_findname - convert a supplied name into an absolute pathname that
can be used to access removable media

SYNOPSIS


cc [ flag ... ] file ... -lvolmgt [ library ... ]
#include <volmgt.h>


char *media_findname(char *start);


DESCRIPTION


This function is obsolete. The management of removable media by the
Volume Management feature, including vold, has been replaced by software
that supports the Hardware Abstraction Layer (HAL). Programmatic support
for HAL is through the HAL APIs, which are documented on the HAL web
site. See hal(5). The return value of this function is undefined.


media_findname() converts the supplied start string into an absolute
pathname that can then be used to access a particular piece of media.


The start parameter can be one of the following types of specifications:

/dev/...
An absolute pathname in /dev, such as /dev/rdiskette0,
in which case a copy of that string is returned (see
NOTES on this page).


volume_name
The volume name for a particular volume, such as fred
(see fdformat(1) for a description of how to label
floppies).


volmgt_symname
The symbolic name for a device, such as floppy0 or
cdrom2.


media_type
The generic media type name. For example, floppy or
cdrom. In this case media_findname() looks for the
first piece of media that matches that media type,
starting at 0 (zero) and continuing on until a match is
found (or some fairly large maximum number is reached).
In this case, if a match is found, a copy of the
pathname to the volume found is returned.


RETURN VALUES


The return from this function is undefined.

ERRORS


For cases where the supplied start parameter is an absolute pathname,
media_findname() can fail, returning a null string pointer, if an
lstat(2) of that supplied pathname fails. Also, if the supplied absolute
pathname is a symbolic link, media_findname() can fail if a readlink(2)
of that symbolic link fails, or if a stat(2) of the pathname pointed to
by that symbolic link fails, or if any of the following is true:

ENXIO
The specified absolute pathname was not a character special
device, and it was not a directory with a character special
device in it.


EXAMPLES


Example 1: Sample programs of the media_findname() function.




The following example attempts to find what the pathname is to a piece of
media called fred. Notice that a volmgt_check() is done first (see the
NOTES section on this page).


(void) volmgt_check(NULL);
if ((nm = media_findname("fred")) != NULL) {
(void) printf("media named \"fred\" is at \"%s\"\n", nm);
} else {
(void) printf("media named \"fred\" not found\n");
}


This example looks for whatever volume is in the first floppy drive,
letting media_findname() call volmgt_check() if and only if no floppy is
currently known to be the first floppy drive.


if ((nm = media_findname("floppy0")) != NULL) {
(void) printf("path to floppy0 is \"%s\"\n", nm);
} else {
(void) printf("nothing in floppy0\n");
}


ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|MT-Level | MT-Unsafe |
+--------------------+-----------------+
|Interface Stability | Obsolete |
+--------------------+-----------------+

SEE ALSO


fdformat(1), lstat(2), readlink(2), stat(2), free(3C), malloc(3C),
volmgt_check(3VOLMGT), volmgt_inuse(3VOLMGT), volmgt_root(3VOLMGT),
volmgt_running(3VOLMGT), volmgt_symname(3VOLMGT), attributes(5), hal(5)

NOTES


If media_findname() cannot find a match for the supplied name, it
performs a volmgt_check(3VOLMGT) and tries again, so it can be more
efficient to perform volmgt_check() before calling media_findname().


Upon success media_findname() returns a pointer to string which has been
allocated; this should be freed when no longer in use (see free(3C)).


March 2, 2007 MEDIA_FINDNAME(3VOLMGT)