sbase/printenv.c
Mattias Andrée 7250fb6968 printenv: exit status is 2 on failure
This provides a reliable and portable way to
test whether an environment variable is defined.

(Of course, if you are using glibc you may get
false positives if you include a = in the query.)

Signed-off-by: Mattias Andrée <maandree@kth.se>
2016-04-20 22:57:40 +01:00

31 lines
466 B
C

/* See LICENSE file for copyright and license details. */
#include <stdio.h>
#include <stdlib.h>
#include "util.h"
extern char **environ;
int
main(int argc, char *argv[])
{
char *var;
int ret = 0;
argv0 = argv[0], argc--, argv++;
if (!argc) {
for (; *environ; environ++)
puts(*environ);
} else {
for (; *argv; argc--, argv++) {
if ((var = getenv(*argv)))
puts(var);
else
ret = 1;
}
}
return fshut(stdout, "<stdout>") ? 2 : ret;
}