Reading a line ending with a newline character from a file descriptor
Static buffer

In my_getchar(), you use a static buffer buff along with some other static variables.  The problem with this is that you can no longer call get_line() on two different files at the same time.  For example, if you did this:

get_line(fd1, &amp;line1);
get_line(fd2, &amp;line2);


Then the second get_line() would actually read characters from the first file descriptor, because you have buffered its contents in the static buffer.

Reallocation strategy

Your current reallocation strategy is to increase the size of the buffer by BUFF_SIZE when you run out of space.  This causes your function to have a \$O(n^2)\$ time complexity.  It would be better if you doubled the size of your buffer instead of adding a constant to it.