Fork() can fail: this is important (2014)
This is why separating return values from error codes is important.For example, in Rust, you’d never get into this situation, because a decent fork ffi function would immediately convert -1 into a Result carrying an error, and properly check errno. Java and C++ would throw an exception, etc.Thus preventing all sorts of bad behavior up the stack.