- char* path = bprintf("/proc/%i/maps", (int) pid);
- FILE *fp = std::fopen(path, "r");
- if (fp == nullptr) {
- std::perror("fopen failed");
- xbt_die("Cannot open %s to investigate the memory map of the process.", path);
+ std::string path = std::string("/proc/") + std::to_string(pid) + "/maps";
+ std::ifstream fp;
+ fp.rdbuf()->pubsetbuf(0, 0);
+ fp.open(path);
+ if (not fp) {
+ std::perror("open failed");
+ xbt_die("Cannot open %s to investigate the memory map of the process.", path.c_str());