Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Unix::Mknod(3)	      User Contributed Perl Documentation	Unix::Mknod(3)

NAME
       Unix::Mknod - Perl extension for	mknod, major, minor, and makedev

SYNOPSIS
	use Unix::Mknod	qw(:all);
	use File::stat;
	use Fcntl qw(:mode);

	$st=stat('/dev/null');
	$major=major($st->rdev);
	$minor=minor($st->rdev);

	mknod('/tmp/special', S_IFCHR|0600, makedev($major,$minor+1));

DESCRIPTION
       This module allows access to the	device routines
       major()/minor()/makedev() that may or may not be	macros in .h files.

       It also allows access to	the mknod(2) system call.

FUNCTIONS
       mknod($filename,	$mode, $rdev)
	   Creates a block or character	device special file named $filename.
	   Must	be run as a privileged user, usually root.  Returns 0 on
	   success and -1 on failure, like "POSIX::mkfifo" does.

       $major =	major($rdev)
	   Returns the major number for	the device special file	as defined by
	   the st_rdev field from the stat(3) call.

       $minor =	minor($rdev)
	   Returns the minor number for	the device special file	as defined by
	   the st_rdev field from the stat(3) call.

       $rdev = makedev($major, $minor)
	   Returns the st_rdev number for the device special file from the
	   $major and $minor numbers.

NOTES
       There are 2 other perl modules that implement the mknod(2) system call,
       but they	have problems working on some platforms.  "Sys::Mknod" does
       not work	on AIX because it uses the syscall(2) generic system call
       which AIX does not have.	 "Mknod" implements S_IFIFO, which on most
       platforms is not	implemented in mknod(1), but rather mkfifo(1) (which
       is implemented in POSIX perl module).

       The perl	module "File::Stat::Bits" also implements major() and minor()
       (and a version of makedev() called dev_join).  They are done as a
       program to get the bit masks at compile time, but if major() and
       minor() are implemented as sub routines,	the arugment could be
       something as simple as an index to a lookup table (and thereby having
       no decernable relation to its result).

BUGS
       Running "make test" as non root will not	truly test the functions, as
       in most UNIX like OSes, mknod(2)	needs to be invoked by a privelaged
       user, usually root.

SEE ALSO
       $ERRNO or $! for	the specific error message.

       File::Stat::Bits, Mknod,	POSIX, Sys::Mknod

       major(9), minor(9), mkfifo(1), mknod(8)

       ftp://ftp-dev.cites.uiuc.edu/pub/Unix-Mknod

AUTHOR
       Jim Pirzyk, <pirzyk@uiuc.edu>

COPYRIGHT AND LICENSE
       Copyright (c) 2005-2008 University of Illinois Board of Trustees	All
       rights reserved.

       Developed by: Campus Information	Technologies and Educational Services,
		     University	of Illinois at Urbana-Champaign

       Permission is hereby granted, free of charge, to	any person obtaining a
       copy of this software and associated documentation files	(the
       ``Software''), to deal with the Software	without	restriction, including
       without limitation the rights to	use, copy, modify, merge, publish,
       distribute, sublicense, and/or sell copies of the Software, and to
       permit persons to whom the Software is furnished	to do so, subject to
       the following conditions:

       * Redistributions of source code	must retain the	above copyright
	 notice, this list of conditions and the following disclaimers.

       * Redistributions in binary form	must reproduce the above copyright
	 notice, this list of conditions and the following disclaimers in the
	 documentation and/or other materials provided with the	distribution.

       * Neither the names of Campus Information Technologies and Educational
	 Services, University of Illinois at Urbana-Champaign, nor the names
	 of its	contributors may be used to endorse or promote products
       derived
	 from this Software without specific prior written permission.

       THE SOFTWARE IS PROVIDED	``AS IS'', WITHOUT WARRANTY OF ANY KIND,
       EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO	THE WARRANTIES OF
       MERCHANTABILITY,	FITNESS	FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
       IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
       ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
       CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
       THE SOFTWARE OR THE USE OR OTHER	DEALINGS WITH THE SOFTWARE.

perl v5.32.0			  2007-12-23			Unix::Mknod(3)

NAME | SYNOPSIS | DESCRIPTION | FUNCTIONS | NOTES | BUGS | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Unix::Mknod&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help