xref: /csrg-svn/sbin/mknod/mknod.c (revision 61501)
137130Sbostic /*
2*61501Sbostic  * Copyright (c) 1989, 1993
3*61501Sbostic  *	The Regents of the University of California.  All rights reserved.
437130Sbostic  *
537130Sbostic  * This code is derived from software contributed to Berkeley by
637130Sbostic  * Kevin Fall.
737130Sbostic  *
842702Sbostic  * %sccs.include.redist.c%
937130Sbostic  */
1037130Sbostic 
1124467Smckusick #ifndef lint
12*61501Sbostic static char copyright[] =
13*61501Sbostic "@(#) Copyright (c) 1989, 1993\n\
14*61501Sbostic 	The Regents of the University of California.  All rights reserved.\n";
1537130Sbostic #endif /* not lint */
1624467Smckusick 
1737130Sbostic #ifndef lint
18*61501Sbostic static char sccsid[] = "@(#)mknod.c	8.1 (Berkeley) 06/05/93";
1937130Sbostic #endif /* not lint */
2037130Sbostic 
2137130Sbostic #include <sys/types.h>
2237130Sbostic #include <sys/stat.h>
2324467Smckusick #include <stdio.h>
2424467Smckusick 
main(argc,argv)251053Sbill main(argc, argv)
2624467Smckusick 	int argc;
2724467Smckusick 	char **argv;
281053Sbill {
2937130Sbostic 	extern int errno;
3037130Sbostic 	u_short mode;
3137130Sbostic 	char *strerror();
321053Sbill 
3337130Sbostic 	if (argc != 5) {
3437130Sbostic 		(void)fprintf(stderr,
3537130Sbostic 		    "usage: mknod name [b | c] major minor\n");
3637130Sbostic 		exit(1);
371053Sbill 	}
3837130Sbostic 
3937130Sbostic 	mode = 0666;
4037130Sbostic 	if (argv[2][0] == 'c')
4137130Sbostic 		mode |= S_IFCHR;
4237130Sbostic 	else if (argv[2][0] == 'b')
4337130Sbostic 		mode |= S_IFBLK;
4437130Sbostic 	else {
4537130Sbostic 		(void)fprintf(stderr,
4637130Sbostic 		    "mknod: node must be type 'b' or 'c'.\n");
4737130Sbostic 		exit(1);
4824467Smckusick 	}
491053Sbill 
5037130Sbostic 	if (mknod(argv[1], mode, makedev(atoi(argv[3]), atoi(argv[4]))) < 0) {
5137130Sbostic 		(void)fprintf(stderr,
5237130Sbostic 		    "mknod: %s: %s\n", argv[1], strerror(errno));
5337130Sbostic 		exit(1);
541053Sbill 	}
5537130Sbostic 	exit(0);
561053Sbill }
57