Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".
1 /*
2 * Soubor: 20110214-Mon-mytee.c
3 * Datum: 14.02.2011
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: jak přebírat parametry z příkazové řádky
7 */
8
9 #define _ISOC99_SOURCE
10 #define _GNU_SOURCE
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <string.h>
14 #include <assert.h>
15 #include <stdbool.h>
16 #include <limits.h>
17 #include <math.h>
18 #include <unistd.h>
19
20
21 /**
22 * Vytiskne na stdout text s nápovědou.
23 */
24 void printHelp()
25 {
26 printf("Program .\n"
27 "Program počítá .\n\n");
28 }
29
30 /////////////////////////////////////////////////////
31 /**
32 * Hlavní program.
33 */
34 int main(int argc, char *argv[])
35 {
36 /*
37 * Zpracování parametrů příkazového řádku
38 */
39 int c;
40 while ((c = getopt(argc, argv, "ha:")) != -1) {
41 switch (c) {
42 case 'h':
43 printHelp();
44 break;
45 case 'a':
46 printf("volba: a, s parametrem: %s\n", optarg);
47 break;
48 case '?':
49 printf("neplatná volba: %c -- končím\n", optopt);
50 return 1;
51 break;
52 }
53 }
54
55 printf("--------------------------------\n");
56 /* všechny parametry */
57 for (int i = 0; i < argc; i++) {
58 //puts(argv[i]);
59 printf("%s\n",argv[i]);
60 }
61 printf("--------------------------------\n");
62 /* patametry, které nejsou přepínači */
63 for (int i = optind; i < argc; i++) {
64 puts(argv[i]);
65 }
66
67 return 0;
68 }