#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <stdint.h>
#define BSIZE 200
int main(void) {
char buffer[BSIZE];
int const pid = getpid();
snprintf(buffer
, BSIZE
, "/proc/%d/maps", pid
); FILE
* const maps
= fopen(buffer
, "r"); while (fgets(buffer
, BSIZE
, maps
) != NULL
) { unsigned long from, to;
int const r
= sscanf(buffer
, "%lx-%lx", &from
, &to
); if (r != 2) {
continue;
}
if ((from
<= (uintptr_t)&fopen) && ((uintptr_t)&fopen < to
)) { char const * name
= strchr(buffer
, '/'); if (name) {
} else {
}
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNkZWZpbmUgQlNJWkUgMjAwCgppbnQgbWFpbih2b2lkKSB7CgljaGFyIGJ1ZmZlcltCU0laRV07CglpbnQgY29uc3QgcGlkID0gZ2V0cGlkKCk7CglzbnByaW50ZihidWZmZXIsIEJTSVpFLCAiL3Byb2MvJWQvbWFwcyIsIHBpZCk7CglGSUxFICogY29uc3QgbWFwcyA9IGZvcGVuKGJ1ZmZlciwgInIiKTsKCXdoaWxlIChmZ2V0cyhidWZmZXIsIEJTSVpFLCBtYXBzKSAhPSBOVUxMKSB7CgkJdW5zaWduZWQgbG9uZyBmcm9tLCB0bzsKCQlpbnQgY29uc3QgciA9IHNzY2FuZihidWZmZXIsICIlbHgtJWx4IiwgJmZyb20sICZ0byk7CgkJaWYgKHIgIT0gMikgewoJCQlwdXRzKCIhIik7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAoKGZyb20gPD0gKHVpbnRwdHJfdCkmZm9wZW4pICYmICgodWludHB0cl90KSZmb3BlbiA8IHRvKSkgewoJCQljaGFyIGNvbnN0ICogbmFtZSA9IHN0cmNocihidWZmZXIsICcvJyk7CgkJCWlmIChuYW1lKSB7CgkJCQlwcmludGYoIiVzIiwgbmFtZSk7CgkJCX0gZWxzZSB7CgkJCQlwdXRzKCI/Iik7CgkJCX0KCQl9Cgl9CglmY2xvc2UobWFwcyk7Cn0K