diff options
Diffstat (limited to 'lib/libc/gen/devname.3')
-rw-r--r-- | lib/libc/gen/devname.3 | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/libc/gen/devname.3 b/lib/libc/gen/devname.3 new file mode 100644 index 0000000..c05d0ba --- /dev/null +++ b/lib/libc/gen/devname.3 @@ -0,0 +1,93 @@ +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)devname.3 8.2 (Berkeley) 4/29/95 +.\" $FreeBSD$ +.\" +.Dd February 22, 2005 +.Dt DEVNAME 3 +.Os +.Sh NAME +.Nm devname +.Nd "get device name" +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/stat.h +.In stdlib.h +.Ft char * +.Fn devname "dev_t dev" "mode_t type" +.Ft char * +.Fn devname_r "dev_t dev" "mode_t type" "char *buf" "int len" +.Sh DESCRIPTION +The +.Fn devname +function returns a pointer to the name of the block or character +device in +.Pa /dev +with a device number of +.Fa dev , +and a file type matching the one encoded in +.Fa type +which must be one of +.Dv S_IFBLK +or +.Dv S_IFCHR . +To find the right name, +.Fn devname +asks the kernel via the +.Va kern.devname +sysctl. +If it is unable to come up with a suitable name, +it will format the information encapsulated in +.Fa dev +and +.Fa type +in a human-readable format. +.Pp +.Fn devname +returns the name stored in a static buffer which will be overwritten +on subsequent calls. +.Fn devname_r +takes a buffer and length as argument to avoid this problem. +.Sh EXAMPLES +.Bd -literal -compact +int fd; +struct stat buf; +char *name; + + fd = open("/dev/tun"); + fstat(fd, &buf); + printf("devname is /dev/%s\en", devname(buf.st_rdev, S_IFCHR)); +.Ed +.Sh SEE ALSO +.Xr stat 2 +.Sh HISTORY +The +.Fn devname +function appeared in +.Bx 4.4 . |