diff options
| author | Tristan Riehs <tristan.riehs@bordeaux-inp.fr> | 2023-09-27 14:01:42 +0200 | 
|---|---|---|
| committer | Tristan Riehs <tristan.riehs@bordeaux-inp.fr> | 2023-09-27 14:01:42 +0200 | 
| commit | 606facf2d89340653be66ca44a199e0a0d0482fb (patch) | |
| tree | 8ff89d28e321ea824d730a867aa3e4e3d807322a | |
| parent | 056bd1da326084ccada77a94fc3a20b2a56e0820 (diff) | |
start
| -rw-r--r-- | src/rpt.c | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/src/rpt.c b/src/rpt.c new file mode 100644 index 0000000..f0a9472 --- /dev/null +++ b/src/rpt.c @@ -0,0 +1,56 @@ +#define _GNU_SOURCE		/* getopt_long */ + +#include <getopt.h> +#include <stdio.h> +#include <sys/wait.h> +#include <unistd.h> + +void +print_usage(FILE *output) +{ +	fprintf(output, "Usage:\n"); +	fprintf(output, "rpt [-n | --count COUNT] [-f | --force] COMMAND\n"); +	fprintf(output, "rpt [-h | --help]\n"); +	fprintf(output, "rpt [-V | --version]\n"); +} + +int +main(int argc, char* argv[]) +{ +	struct option const opts[] = { +		{"count", required_argument, NULL, 'n'}, +		{"force", no_argument, NULL, 'f'}, +		{"version", no_argument, NULL, 'V'}, +		{"help", no_argument, NULL, 'h'}, +		{NULL, 0, NULL, 0} +	}; + +	opterr = 0;		/* dismiss getopt error message */ +	int opt; + +	char *strcount = NULL; +	long count; + +	void (*handle_exit_f)(int status); + +	while ((opt = getopt_long(argc, argv, "+:n:fVh", opts, NULL)) >= 0) +	{ +		switch(opt) +		{ +		case 'n': +			strcount = optarg; +			break; +		case 'f': + +		case ':': +			fprintf(stderr, "COUNT value missing.\n"); +			print_usage(stderr); +			return 1; +		default: +			print_usage(stderr); +			return 1; +		} +	} + +	return 0; +} | 
