getconf.c (99112) | getconf.c (103591) |
---|---|
1/* 2 * Copyright 2000 Massachusetts Institute of Technology 3 * 4 * Permission to use, copy, modify, and distribute this software and 5 * its documentation for any purpose and without fee is hereby 6 * granted, provided that both the above copyright notice and this 7 * permission notice appear in all copies, that both the above 8 * copyright notice and this permission notice appear in all --- 14 unchanged lines hidden (view full) --- 23 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 26 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 */ 29 30#include <sys/cdefs.h> | 1/* 2 * Copyright 2000 Massachusetts Institute of Technology 3 * 4 * Permission to use, copy, modify, and distribute this software and 5 * its documentation for any purpose and without fee is hereby 6 * granted, provided that both the above copyright notice and this 7 * permission notice appear in all copies, that both the above 8 * copyright notice and this permission notice appear in all --- 14 unchanged lines hidden (view full) --- 23 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 26 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 */ 29 30#include <sys/cdefs.h> |
31__FBSDID("$FreeBSD: head/usr.bin/getconf/getconf.c 99112 2002-06-30 05:25:07Z obrien $"); | 31__FBSDID("$FreeBSD: head/usr.bin/getconf/getconf.c 103591 2002-09-19 03:39:03Z wollman $"); |
32 33#include <sys/types.h> 34 35#include <err.h> 36#include <errno.h> 37#include <stdio.h> 38#include <stdlib.h> 39#include <sysexits.h> --- 4 unchanged lines hidden (view full) --- 44static void do_confstr(const char *name, int key); 45static void do_sysconf(const char *name, int key); 46static void do_pathconf(const char *name, int key, const char *path); 47 48static void 49usage(void) 50{ 51 fprintf(stderr, "usage:\n" | 32 33#include <sys/types.h> 34 35#include <err.h> 36#include <errno.h> 37#include <stdio.h> 38#include <stdlib.h> 39#include <sysexits.h> --- 4 unchanged lines hidden (view full) --- 44static void do_confstr(const char *name, int key); 45static void do_sysconf(const char *name, int key); 46static void do_pathconf(const char *name, int key, const char *path); 47 48static void 49usage(void) 50{ 51 fprintf(stderr, "usage:\n" |
52 "\tgetconf [-v prog_model] system_var\n" 53 "\tgetconf [-v prog_model] path_var pathname\n"); | 52 "\tgetconf [-v prog_env] system_var\n" 53 "\tgetconf [-v prog_env] path_var pathname\n"); |
54 exit(EX_USAGE); 55} 56 57int 58main(int argc, char **argv) 59{ | 54 exit(EX_USAGE); 55} 56 57int 58main(int argc, char **argv) 59{ |
60 int c; 61 const char *name, *vflag; 62 int key; | 60 int c, key, valid; 61 const char *name, *vflag, *alt_path; 62 intmax_t limitval; |
63 | 63 |
64 vflag = 0; 65 | 64 vflag = NULL; |
66 while ((c = getopt(argc, argv, "v:")) != -1) { 67 switch (c) { 68 case 'v': 69 vflag = optarg; 70 break; 71 72 default: 73 usage(); 74 } 75 } 76 | 65 while ((c = getopt(argc, argv, "v:")) != -1) { 66 switch (c) { 67 case 'v': 68 vflag = optarg; 69 break; 70 71 default: 72 usage(); 73 } 74 } 75 |
77 if (vflag) 78 warnx("-v %s ignored", vflag); 79 80 /* No arguments... */ 81 if ((name = argv[optind]) == 0) | 76 if ((name = argv[optind]) == NULL) |
82 usage(); 83 | 77 usage(); 78 |
84 if (argv[optind + 1] == 0) { /* confstr or sysconf */ 85 key = find_confstr(name); 86 if (key >= 0) { 87 do_confstr(name, key); | 79 if (vflag != NULL) { 80 if ((valid = find_progenv(vflag, &alt_path)) == 0) 81 errx(EX_USAGE, "invalid programming environment %s", 82 vflag); 83 if (valid > 0 && alt_path != NULL) { 84 if (argv[optind + 1] == NULL) 85 execl(alt_path, "getconf", argv[optind], 86 (char *)NULL); 87 else 88 execl(alt_path, "getconf", argv[optind], 89 argv[optind + 1], (char *)NULL); 90 91 err(EX_OSERR, "execl: %s", alt_path); 92 } 93 if (valid < 0) 94 errx(EX_UNAVAILABLE, "environment %s is not available", 95 vflag); 96 } 97 98 if (argv[optind + 1] == NULL) { /* confstr or sysconf */ 99 if ((valid = find_limit(name, &limitval)) != 0) { 100 if (valid > 0) 101 printf("%jd\n", limitval); 102 else 103 printf("undefined\n"); 104 105 return 0; 106 } 107 if ((valid = find_confstr(name, &key)) != 0) { 108 if (valid > 0) 109 do_confstr(name, key); 110 else 111 printf("undefined\n"); |
88 } else { | 112 } else { |
89 key = find_sysconf(name); 90 if (key >= 0) | 113 valid = find_sysconf(name, &key); 114 if (valid > 0) { |
91 do_sysconf(name, key); | 115 do_sysconf(name, key); |
92 else | 116 } else if (valid < 0) { 117 printf("undefined\n"); 118 } else |
93 errx(EX_USAGE, 94 "no such configuration parameter `%s'", 95 name); 96 } 97 } else { | 119 errx(EX_USAGE, 120 "no such configuration parameter `%s'", 121 name); 122 } 123 } else { |
98 key = find_pathconf(name); 99 if (key >= 0) 100 do_pathconf(name, key, argv[optind + 1]); 101 else | 124 valid = find_pathconf(name, &key); 125 if (valid != 0) { 126 if (valid > 0) 127 do_pathconf(name, key, argv[optind + 1]); 128 else 129 printf("undefined\n"); 130 } else |
102 errx(EX_USAGE, 103 "no such path configuration parameter `%s'", 104 name); 105 } 106 return 0; 107} 108 109static void --- 39 unchanged lines hidden (view full) --- 149 value = pathconf(path, key); 150 if (value == -1 && errno != 0) 151 err(EX_OSERR, "pathconf: %s", name); 152 else if (value == -1) 153 printf("undefined\n"); 154 else 155 printf("%ld\n", value); 156} | 131 errx(EX_USAGE, 132 "no such path configuration parameter `%s'", 133 name); 134 } 135 return 0; 136} 137 138static void --- 39 unchanged lines hidden (view full) --- 178 value = pathconf(path, key); 179 if (value == -1 && errno != 0) 180 err(EX_OSERR, "pathconf: %s", name); 181 else if (value == -1) 182 printf("undefined\n"); 183 else 184 printf("%ld\n", value); 185} |
186 |
|