because gcc doesn't know err is always non-zero, so it warnings about not initialized child_pipe, has any ideas about this?