Deleted Added
full compact
devname.3 (165903) devname.3 (188497)
1.\" Copyright (c) 1993
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 12 unchanged lines hidden (view full) ---

21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\" @(#)devname.3 8.2 (Berkeley) 4/29/95
1.\" Copyright (c) 1993
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 12 unchanged lines hidden (view full) ---

21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\" @(#)devname.3 8.2 (Berkeley) 4/29/95
29.\" $FreeBSD: head/lib/libc/gen/devname.3 165903 2007-01-09 00:28:16Z imp $
29.\" $FreeBSD: head/lib/libc/gen/devname.3 188497 2009-02-11 20:24:59Z ed $
30.\"
31.Dd February 22, 2005
32.Dt DEVNAME 3
33.Os
34.Sh NAME
35.Nm devname
36.Nd "get device name"
37.Sh LIBRARY
38.Lb libc
39.Sh SYNOPSIS
40.In sys/stat.h
41.In stdlib.h
42.Ft char *
43.Fn devname "dev_t dev" "mode_t type"
44.Ft char *
45.Fn devname_r "dev_t dev" "mode_t type" "char *buf" "int len"
30.\"
31.Dd February 22, 2005
32.Dt DEVNAME 3
33.Os
34.Sh NAME
35.Nm devname
36.Nd "get device name"
37.Sh LIBRARY
38.Lb libc
39.Sh SYNOPSIS
40.In sys/stat.h
41.In stdlib.h
42.Ft char *
43.Fn devname "dev_t dev" "mode_t type"
44.Ft char *
45.Fn devname_r "dev_t dev" "mode_t type" "char *buf" "int len"
46.Ft char *
47.Fn fdevname "int fd"
48.Ft char *
49.Fn fdevname_r "int fd" "char *buf" "int len"
46.Sh DESCRIPTION
47The
48.Fn devname
49function returns a pointer to the name of the block or character
50device in
51.Pa /dev
52with a device number of
53.Fa dev ,

--- 10 unchanged lines hidden (view full) ---

64sysctl.
65If it is unable to come up with a suitable name,
66it will format the information encapsulated in
67.Fa dev
68and
69.Fa type
70in a human-readable format.
71.Pp
50.Sh DESCRIPTION
51The
52.Fn devname
53function returns a pointer to the name of the block or character
54device in
55.Pa /dev
56with a device number of
57.Fa dev ,

--- 10 unchanged lines hidden (view full) ---

68sysctl.
69If it is unable to come up with a suitable name,
70it will format the information encapsulated in
71.Fa dev
72and
73.Fa type
74in a human-readable format.
75.Pp
76The
77.Fn fdevname
78and
79.Fn fdevname_r
80function obtains the device name directly from a file descriptor
81pointing to a character device.
82If it is unable to come up with a suitable name, these functions will
83return a NULL pointer.
84.Pp
72.Fn devname
85.Fn devname
73returns the name stored in a static buffer which will be overwritten
86and
87.Fn fdevname
88return the name stored in a static buffer which will be overwritten
74on subsequent calls.
75.Fn devname_r
89on subsequent calls.
90.Fn devname_r
76takes a buffer and length as argument to avoid this problem.
91and
92.Fn fdevname_r
93take a buffer and length as argument to avoid this problem.
77.Sh EXAMPLES
78.Bd -literal -compact
79int fd;
80struct stat buf;
81char *name;
82
83 fd = open("/dev/tun");
84 fstat(fd, &buf);
85 printf("devname is /dev/%s\en", devname(buf.st_rdev, S_IFCHR));
94.Sh EXAMPLES
95.Bd -literal -compact
96int fd;
97struct stat buf;
98char *name;
99
100 fd = open("/dev/tun");
101 fstat(fd, &buf);
102 printf("devname is /dev/%s\en", devname(buf.st_rdev, S_IFCHR));
103 printf("fdevname is /dev/%s\en", fdevname(fd));
86.Ed
87.Sh SEE ALSO
88.Xr stat 2
89.Sh HISTORY
90The
91.Fn devname
92function appeared in
93.Bx 4.4 .
104.Ed
105.Sh SEE ALSO
106.Xr stat 2
107.Sh HISTORY
108The
109.Fn devname
110function appeared in
111.Bx 4.4 .
112The
113.Fn fdevname
114function appeared in
115.Fx 8.0 .