I'm working on a program and need help. I need to write a C function with a char array (char *) parameter for a filename, and returns a char array (char *) containing all the characters in the file. The returned array should end with a '/0' to form a valid string. The array returned should be dynamically allocated, no larger than twice the character length of the file. It needs to be done in one I/O pass and dynamically allocate more memory for larger input. The function cannot use any functions that would determine the size of the file. No fstat() or fseek() or anything like that. It also cannot allocate or copy memory on each loop iteration. It cannot use realloc(), only malloc() and free(). It should use linear time and space and take up no more memory than 2 times the characters in it.
I'm working on a program and need help.
I need to write a C function with a char array (char *) parameter for a filename, and returns a char array (char *) containing all the characters in the file. The returned array should end with a '/0' to form a valid string.
The array returned should be dynamically allocated, no larger than twice the character length of the file. It needs to be done in one I/O pass and dynamically allocate more memory for larger input.
The function cannot use any functions that would determine the size of the file. No fstat() or fseek() or anything like that. It also cannot allocate or copy memory on each loop iteration. It cannot use realloc(), only malloc() and free(). It should use linear time and space and take up no more memory than 2 times the characters in it.
Step by step
Solved in 4 steps with 3 images