From a5aa3542f7d8c8bc8a2bcf19da976840ba47698d Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 21 May 2015 23:36:10 +0100 Subject: [PATCH] mknod: remove stdio --- Applications/util/mknod.c | 62 +++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/Applications/util/mknod.c b/Applications/util/mknod.c index bacdd3ca..1b486a0b 100644 --- a/Applications/util/mknod.c +++ b/Applications/util/mknod.c @@ -1,12 +1,18 @@ #include +#include #include #include -static long parse_number(const char* p, int base) +static void writes(const char *p) { - char* end; + write(2, p, strlen(p)); +} + +static long parse_number(const char *p, int base) +{ + char *end; unsigned long result; - + errno = 0; result = strtoul(p, &end, base); if (errno || *end) @@ -16,38 +22,38 @@ static long parse_number(const char* p, int base) int do_mknod(char *path, char *modes, char *devs) { - int mode; - int dev; + int mode; + int dev; mode = parse_number(modes, 8); - if (mode < 0) { - printf("mknod: bad mode\n"); - return (-1); - } - - if (!S_ISFIFO(mode) && !S_ISDEV(mode)) { - printf("mknod: mode is not device/fifo\n"); - return (-1); - } + if (mode < 0) { + writes("mknod: bad mode\n"); + return 1; + } + + if (!S_ISFIFO(mode) && !S_ISDEV(mode)) { + writes("mknod: mode is not device/fifo\n"); + return 1; + } dev = parse_number(devs, 10); if (dev < 0) { - printf("mknod: bad device\n"); - return (-1); - } - - if (mknod(path, mode, dev) != 0) { - perror("mknod"); - return (-1); - } - return(0); + writes("mknod: bad device\n"); + return 1; + } + + if (mknod(path, mode, dev) != 0) { + perror("mknod"); + return 1; + } + return (0); } int main(int argc, char *argv[]) { - if (argc != 4) { - printf("usage: mknod path modes devs\n"); - return 1; - } - return do_mknod(argv[1], argv[2], argv[3]); + if (argc != 4) { + writes("usage: mknod path modes devs\n"); + return 1; + } + return do_mknod(argv[1], argv[2], argv[3]); } -- 2.34.1