CV8-mudroch - smazat

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>
#include <errno.h>


enum {
   ERROR_OK = EXIT_SUCCESS,
   ERROR_READ = 100,
   ERROR_MEM = 101,
   ERROR_OUT = 102,
};
 
// from stdin reads one line (ends \n); returns pointer to read array
char* read(FILE *fd, int *error);
char **read_lines(FILE *fd, size_t *n, int *error);
 
int print(char *line);
int print_lines(size_t n, char **lines);
void free_lines(size_t n, char ***lines);
 
void print_error(int error);




char* read(FILE *fd){
  int line_size = 4;
  char* line = malloc(sizeof(char)*line_size);
  if (line==NULL) { return NULL;}

  int i = 0;
  char c;
  while ((c=getc(fd))!='\n' && c!=EOF) {
    if (i == line_size-1) {
      line_size *= 2;
      char *line_tmp;
      line_tmp = realloc(line, sizeof(char)*line_size);
      if (line_tmp==NULL){
        free(line);
        return NULL;
      }
      line=line_tmp;
    }
    line[i] = c;    
    i++;
  }  
  line[i]='\0';
  
  return(line);
}

int main(int argc, char**argv) {
  if (!argc>=1){
    printf("Chybi vstupni soubor\n");    
    return EXIT_FAILURE;
  }

  FILE *input = fopen(argv[1],"r");
  if (input==NULL){
    printf("Nelze otevrit vstupni soubor\n");
    printf("Kod chyby %d\n",errno);
    perror("chybova hlaska");
    return EXIT_FAILURE;
  }

  char *line = read(input);
  fprintf(stdout, "%s", line);
  free(line);

  //zpracovani:

  //-------
  int res_close = fclose(input);
  if (res_close==EOF){
    printf("Nepodarilo se zavrit soubor\n");
    printf("Kod chyby %d\n",errno);
    perror("chybova hlaska");
    return EXIT_FAILURE;
  }
 
  return EXIT_SUCCESS;
}



courses/b3b36prg/labs/mudroch.txt · Last modified: 2026/04/09 16:25 by mudromar