Unix tail command using stack
The stack approach is dubious. It uses too much memory (the entire file is eventually collected, while you only care about its tail). Consider a ring buffer instead.
I don't see the point of #include &lt;stdbool.h&gt;
Casting is unnecessary, as in (char*)stack_top(stack) - and even dangerous, as in (Node*)malloc(sizeof(Node)). Why you shouldn't cast malloc. 
Always test that malloc doesn't return NULL.
A declaration

int i = 0;


is unnecessary.
Nitpicking. #define LINE_SIZE 256 is a very optimistic estimate. Try to manage a file with really long lines.