【问题标题】:How to print out memory address of UNIX application's memory using C?如何使用 C 打印出 UNIX 应用程序内存的内存地址?
【发布时间】:2011-10-07 02:41:08
【问题描述】:

有谁知道如何使用 C 打印出 UNIX 应用程序内存的内存地址?

我需要在运行代码时打印出这些地址信息,例如“物理内存的页数”

我正在寻找此示例的输出类似于...

Number of pages:
          384285

谢谢

【问题讨论】:

  • 你想打印出一个内存address,还是一个amount内存被某物消耗或分配给某物,或其他东西?跨度>
  • 即使决定进程“属于”什么物理内存也很重要;没有明确的定义。

标签: c unix memory memory-management memory-address


【解决方案1】:
char buf[40];
sprintf(buf, "exec cat /proc/%d/status", getpid());
system(buf);

【讨论】:

  • 首先,为什么不使用/proc/self/status?其次,这提供了很多 OP 没有要求的信息。
  • 因为 /proc/self/status 会给出 cat 进程的数据。
  • 啊,对。哎呀。好吧,他仍然可以打开 /proc/self/status 并在流程中提取数据 - 但这留下了弄清楚 OP 到底想要什么的问题
  • @Joshua: 取决于你在打开/proc/self/status 作为标准输入后是单独使用cat /proc/self/status 还是cat.. :-)
猜你喜欢
  • 1970-01-01
  • 2013-11-13
  • 2017-02-21
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多