title: a function to read a text file
body: <p>I want to have a user defined function in C programming where the function would return the text from the file and filename is passed to the function via parameter to that function.
  Thanks.</p>
  
  <p>This is because i need to append the text to a variable. How do i modify the following code for this. This is how I tried to do this but i get lots of error now.</p>
  
  <pre><code>example1.c: In function ‘readfile’:
  example1.c:47:5: warning: passing argument 1 of ‘fopen’ makes pointer from integer without a cast [enabled by default]
  /usr/include/stdio.h:273:14: note: expected ‘const char * __restrict__’ but argument is of type ‘int’
  example1.c:48:5: warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration]
  example1.c:48:52: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
  example1.c:56:5: warning: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
  example1.c:56:22: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
  example1.c:57:57: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
  example1.c:61:59: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
  example1.c:65:2: warning: return makes integer from pointer without a cast [enabled by default]
  example1.c:68:5: warning: implicit declaration of function ‘free’ [-Wimplicit-function-declaration]
  example1.c:68:5: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
  example1.c: At top level:
  example1.c:71:30: warning: initialization makes pointer from integer without a cast [enabled by default]
  example1.c:71:1: error: initializer element is not constant
  </code></pre>
  
  <p>Please help.</p>
  
  <pre><code>char readfile (fname) {
      FILE * pFile;
      long lSize;
      char * buffer;
      size_t result;
  
      pFile = fopen ( fname , "rb" );
      if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
  
      fseek (pFile , 0 , SEEK_END);
      lSize = ftell (pFile);
      rewind (pFile);
  
      buffer = (char*) malloc (sizeof(char)*lSize);
      if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
  
      result = fread (buffer,1,lSize,pFile);
      if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
  
      return buffer;
      fclose (pFile);
      free (buffer);
  }
  AC_ALPHABET_t * input_text = readfile("infile");
  </code></pre>