use STD*_FILENO macros for potentially better clarity/portability