In UNIX systems we know malloc() is a non-reentrant function (system call). Why is that?
Similarly, printf() also is said to be non-reentrant; why?
I know the definition of re-entrancy, but I wanted to know why it applies to these functions. What prevents them being guaranteed reentrant?