Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1/1

Zdrojové soubory z výuky

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á".

20110211-Fri-mytee.c
   1 /*
   2  * Soubor:  20110211-Fri-mytee.c
   3  * Datum:   11.02.2011
   4  * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   5  * Licence: GNU/GPL 
   6  * Úloha: 
   7  * Popis:   
   8  */
   9 
  10 #define _ISOC99_SOURCE
  11 #define _GNU_SOURCE
  12 #include <stdio.h>
  13 #include <stdlib.h>
  14 #include <string.h>
  15 #include <assert.h>
  16 #include <stdbool.h>
  17 #include <limits.h>
  18 #include <math.h>
  19 #include <unistd.h>
  20 
  21 /**
  22  * Vytiskne na stdout text s nápovědou.
  23  */
  24 void printHelp()
  25 {
  26     printf("Program mytee bere stdin a vypisuje na stdout.\n\n"
  27            " mytee [-a] <soubor>\n\n"
  28            "-a   <soubor> se nepřepisuje ale stream"
  29            "     se zařadí na konec\n\n"
  30            "-h   vypíše tento help\n\n");
  31 }
  32 
  33 /////////////////////////////////////////////////////
  34 /**
  35  * Hlavní program.
  36  */
  37 int main(int argc, char *argv[])
  38 {
  39     char mode[]="w"; // mode pro fopen
  40     FILE *fout; 
  41     int stream;
  42     /* 
  43      * Zpracování parametrů příkazového řádku 
  44      */
  45     int c;
  46     while ((c = getopt(argc, argv, ":ah")) != -1) {
  47         switch (c) {
  48         case 'h':
  49             printHelp();
  50             return 0;
  51             break;
  52         case 'a':
  53             sprintf(mode,"%s","a"); // mode pro fopen
  54             break;
  55         case '?':
  56             printf("neplatná volba: %c\n", optopt);
  57             break;
  58         }
  59     }
  60 
  61     /* patametry, které nejsou přepínači */
  62     //printf("%d %d\n",optind,argc);
  63     if ( optind < argc ) {
  64         fout = fopen(argv[optind],mode);
  65         while ( (stream=getchar()) != EOF) {
  66             putchar(stream);
  67             fputc(stream,fout);
  68         }
  69         fclose(fout);
  70         return 0;
  71     } else {
  72         fprintf(stderr,"ERROR: zadej vystupni soubor\n");
  73         printHelp();
  74         return 1;
  75     }
  76 
  77 }
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net