To avoid handle leak (e.g. some exception etc.) cor::FdHandle can be used (#include <cor/util.hpp>)