Any chance you are running this on an OS with a "new line" character that isn't "\n"? Windows for example could be "\r\n". I tried on Linux and it worked, although I only grabbed the necessary parts, so if something else is breaking, I can't say. Or perhaps I misunderstood the issue altogether. Here is what I see:
The function:
# code block
int print_file(char* buffer) {
printf("print_file\n");
int line_num = 1;
char* line = strtok(buffer, "\n");
while(line != NULL) {
printf("%4d\t%s\n", line_num, line);
line = strtok(NULL, "\n");
line_num++;
}
return 0;
}
Any chance you are running this on an OS with a "new line" character that isn't "\n"? Windows for example could be "\r\n". I tried on Linux and it worked, although I only grabbed the necessary parts, so if something else is breaking, I can't say. Or perhaps I misunderstood the issue altogether. Here is what I see:
The function:
And the output: