// concat.c: print all command line arguments in a single line #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; printf("Name of the program: %s\n", argv[0]); printf("Number of arguments: %d\n", argc-1); for (i=1; i<argc; i++) { printf("%s", argv[i]); } putchar('\n'); return EXIT_SUCCESS; } |
// add3.c: sum exactly 3 arguments from the command line #include <stdio.h> #include <stdlib.h> #define NUMARGS 3 int main(int argc, char *argv[]) { int dataGood = 1; int retval = EXIT_SUCCESS; if (argc < 4 || argc > 4) { fprintf(stderr, "%s: incorrect number of args\n", argv[0]); dataGood = 0; } else { int sum = 0; int i; for (i=1; i<=NUMARGS && dataGood; i++) { int n; if (sscanf(argv[i], "%d", &n) == 1) { sum = sum + n; } else { fprintf(stderr, "%s: found non-numerical arg\n", argv[0]); dataGood = 0; } } if (dataGood) { printf("%d\n", sum); } } if (!dataGood) { retval = EXIT_FAILURE; } return retval; } |
// sumnum.c: sum the numbers on the command line #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int dataGood = 1; int retval = EXIT_SUCCESS; if (argc > 1) { int i, n; int sum = 0; for (i=1; i<argc && dataGood; i++) { if (sscanf(argv[i], "%d", &n) == 1) { sum = sum + n; } else { fprintf(stderr, "error: argument %s is non-numeric\n", argv[i]); dataGood = 0; } } if (dataGood) { printf("%d\n", sum); } } if (!dataGood) { retval = EXIT_FAILURE; } return retval; } |
CC=gcc CFLAGS=-Wall -Werror -O sumnum: sumnum.c $(CC) $(CFLAGS) -o $@ $< countplus: countplus.c $(CC) $(CFLAGS) -o $@ $< all: sumnum countplus clean: rm -f sumnum.o countplus.o sumnum countplus core |
// countplus.c: iteratively count from 0 to argv[1], // where argv[1] is a non-negative integer #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { int retval; int endcount = 0; if ((argc != 2) || (sscanf(argv[1], "%d", &endcount) != 1)) { fprintf(stderr, "Usage: %s number\n", argv[0]); retval = EXIT_FAILURE; } else { int i; for (i=0; i<=endcount; i++) { printf("%d", i); if (i < endcount) { putchar(','); } else { putchar('\n'); } } retval = EXIT_SUCCESS; } return retval; } |