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