Reentrant Function
What is Reentrant Function?
一個 function 是 reentrant function 代表說他可以安全的被 interrupt
- 假設我們正在跑 Function A 然後突然被 signal interrupt 並且去跑 signal handler 並且這個 signal handler 也呼叫了一次 Function A
- 如果 Function A 是 reentrant function 那麼等 handler 結束繼續跑 Function A 時一且的資料就會是正常的並且不會造成邏輯混亂

What will cause non-reentrant function?
- static data
- return pointer to static data
- call
malloc()orfree() - use standard I/O library
- use POSIX.1 system database functions (e.g.
getgrgid(),getgrnam(), etc) - call non-reentrant function