c/c++ utils