Iz E-študij, proste zakladnice študentskega znanja
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void fatal_error(const char * s) {
printf("NAPAKA: %s\n", s);
exit(1);
}
char * read_file_into_buffer(const char * filename) {
FILE * fp = fopen(filename, "r");
if (fp == NULL) return NULL;
fseek(fp, 0, SEEK_END);
long length = ftell(fp);
fseek(fp, 0, SEEK_SET);
char * buffer = (char *) malloc(length + 1);
fread(buffer, length, 1, fp);
fclose(fp);
buffer[length] = 0;
return buffer;
}
char * create_string(const char * buf, int len) {
char * s = (char *) malloc(len + 1);
memcpy(s, buf, len);
s[len] = 0;
return s;
}
void skip_char(char ** buf, const char c) {
while (**buf == c)
(*buf)++;
}
void skip_chars(char ** buf, const char c1, const char c2) {
while (**buf == c1 || **buf == c2)
(*buf)++;
}
int main() {
char * buffer = read_file_into_buffer("Makefile");
if (buffer == NULL)
fatal_error("TeĹžava pri branju Makefile datoteke.\n");
printf("%s", buffer);
free(buffer);
return 0;
}