Parsing commandline arguments
This commit is contained in:
33
ulib/args/args.h
Normal file
33
ulib/args/args.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef ULIB_ARGS_H_
|
||||
#define ULIB_ARGS_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
char **args(void);
|
||||
size_t argslen(void);
|
||||
|
||||
typedef struct {
|
||||
char *shortname;
|
||||
enum { ARG_STRING } expected_value;
|
||||
void *ptr;
|
||||
bool end;
|
||||
} Arg;
|
||||
|
||||
#define ARG(sn, ev, p) ((Arg){ \
|
||||
.shortname = (sn), \
|
||||
.expected_value = (ev), \
|
||||
.ptr = (void *)(p), \
|
||||
.end = false, \
|
||||
})
|
||||
|
||||
#define ARG_END() ((Arg){ .end = true, })
|
||||
|
||||
enum {
|
||||
ARGP_OK = 0,
|
||||
};
|
||||
|
||||
int32_t parse_args(char **argv, size_t argc, Arg *defs);
|
||||
|
||||
#endif // ULIB_ARGS_H_
|
Reference in New Issue
Block a user