From 0deb0e3e2dbf8d0038b3ed7da5d8407a73ed3224 Mon Sep 17 00:00:00 2001 From: Olaf Barthel Date: Thu, 3 Mar 2005 15:02:26 +0000 Subject: [PATCH] - Added uname command, as contributed by Peter Bengtsson. Thank you very much! git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14855 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- test_programs/GNUmakefile.68k | 10 +++++--- test_programs/GNUmakefile.os4 | 10 +++++--- test_programs/smakefile | 11 +++++--- test_programs/uname.c | 48 +++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 test_programs/uname.c diff --git a/test_programs/GNUmakefile.68k b/test_programs/GNUmakefile.68k index c3dd3f5..e8c3556 100644 --- a/test_programs/GNUmakefile.68k +++ b/test_programs/GNUmakefile.68k @@ -1,5 +1,5 @@ # -# $Id: GNUmakefile.68k,v 1.3 2004-10-25 19:50:33 obarthel Exp $ +# $Id: GNUmakefile.68k,v 1.4 2005-03-03 15:02:24 obarthel Exp $ # # :ts=8 # @@ -47,11 +47,11 @@ LIBS = -lm -lc -lgcc ############################################################################## all: test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test \ - translate_test strtok_test + translate_test strtok_test uname clean: $(DELETE) #?.o #?.map test fgets_test iotest sscanf_test printf_test sprintf_test \ - stack_size_test translate_test strtok_test + stack_size_test translate_test strtok_test uname ############################################################################## @@ -91,6 +91,10 @@ translate_test : translate_test.o @echo "Linking $@" $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map +uname: uname.o + @echo "Linking $@" + $(CC) $(CFLAGS) -o $@ uname.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map + ############################################################################## mkid: diff --git a/test_programs/GNUmakefile.os4 b/test_programs/GNUmakefile.os4 index e6bf5e7..6a92ac4 100644 --- a/test_programs/GNUmakefile.os4 +++ b/test_programs/GNUmakefile.os4 @@ -1,5 +1,5 @@ # -# $Id: GNUmakefile.os4,v 1.3 2005-03-03 14:46:10 obarthel Exp $ +# $Id: GNUmakefile.os4,v 1.4 2005-03-03 15:02:25 obarthel Exp $ # # :ts=8 # @@ -39,11 +39,11 @@ LIBS = -lm -lc ############################################################################## all: test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test \ - translate_test strtok_test + translate_test strtok_test uname clean: $(DELETE) *.o *.map test fgets_test iotest sscanf_test printf_test sprintf_test \ - stack_size_test translate_test strtok_test + stack_size_test translate_test strtok_test uname ############################################################################## @@ -82,3 +82,7 @@ stack_size_test : stack_size_test.o translate_test : translate_test.o @echo "Linking $@" $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map + +uname : uname.o + @echo "Linking $@" + $(CC) $(CFLAGS) -o $@ uname.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map diff --git a/test_programs/smakefile b/test_programs/smakefile index 46298d2..fcdd191 100644 --- a/test_programs/smakefile +++ b/test_programs/smakefile @@ -1,5 +1,5 @@ # -# $Id: smakefile,v 1.3 2004-10-25 19:50:33 obarthel Exp $ +# $Id: smakefile,v 1.4 2005-03-03 15:02:26 obarthel Exp $ # # :ts=8 # @@ -63,10 +63,10 @@ AFLAGS = \ ############################################################################## -all: setup test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test cleanup +all: setup test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test uname cleanup clean: - -delete \#?.o \#?.map test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test + -delete \#?.o \#?.map test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test uname ############################################################################## @@ -125,6 +125,11 @@ translate_test: translate_test.o @slink $(LIB)startup.o translate_test.o to $@ lib $(LIB)c.lib addsym \ map $@.map,fhx fwidth 32 pwidth 32 swidth 32 +uname: uname.o + @echo "Linking $@" + @slink $(LIB)startup.o uname.o to $@ lib $(LIB)c.lib addsym \ + map $@.map,fhx fwidth 32 pwidth 32 swidth 32 + ############################################################################## mkid: diff --git a/test_programs/uname.c b/test_programs/uname.c new file mode 100644 index 0000000..f49269b --- /dev/null +++ b/test_programs/uname.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include + +int main(int cnt,char *arg[]) +{ +struct utsname uinfo; +int Ret=EXIT_SUCCESS; + +if(cnt>1 && (!strcmp(arg[1],"-h") || !strcmp(arg[1],"--help"))) { + printf( + " -a\tPrint all information.\n" + " -m\tPrint the machine type.\n" + " -n\tPrint the node (host) name.\n" + " -r\tPrint the OS release.\n" + " -s\tPrint the OS name.\n" + " -v\tPrint the OS version.\n\n" + " -h or --help displays this message.\n\n" + ); +} else { + if(!uname(&uinfo)) { + if(cnt<2 || !strcmp(arg[1],"-s")) { + printf("%s\n",uinfo.sysname); + } else if(!strcmp(arg[1],"-a")) { + printf("%s %s %s %s %s\n",uinfo.sysname,uinfo.version,uinfo.release,uinfo.nodename,uinfo.machine); + } else if(!strcmp(arg[1],"-m")) { + printf("%s\n",uinfo.machine); + } else if(!strcmp(arg[1],"-n")) { + printf("%s\n",uinfo.nodename); + } else if(!strcmp(arg[1],"-r")) { + printf("%s\n",uinfo.release); + } else if(!strcmp(arg[1],"-v")) { + printf("%s\n",uinfo.version); + } else { + printf("Unknown option \"%s\"!\nTry -h or --help.\n",arg[1]); + Ret=EXIT_FAILURE; + } + } else { + printf("Unknown error!\n"); + } +} + +return(Ret); +} + +/* vi:set ts=3: */ +