Search
#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; }