#include <stdio.h>
#include <string.h>
#include <errno.h>

// C89 compliant for various compilers

void usage(void)
{
    printf("usage: err2str <errcode>\nprints the stringized error code (if found)\n");
}

int is_int(char* code)
{
    if (code) {
        int i;
        int len;
        len = strlen(code);
        for (i = 0; i < 6 && i < len; ++i) {
            if (!isdigit(code[i])) {
                return -1;
            }
        }
        return 0;
    }
    return -1;
}

void print_err(char* code)
{
    if (is_int(code) == 0) {
        int i;
        i = atoi(code);
        printf("%s\n", strerror(i));
    } else {
        printf("Invalid error code: %s\n", code);
        usage();
    }
}

int main(int argc, char** argv)
{
    if (argc != 2) {
        usage();
    } else {
        print_err(argv[1]);
    }
    return 0;
}

