簡體   English   中英

在 C/Linux 中,您如何從系統中找到程序內存/分段的邊界?

[英]How do you find the bounds of your program memory/segmentation from the system in C/Linux?

在 C/Linux 中,您如何從系統中找到程序內存/分段的邊界?

Dogbert 的回答可讓您找出並修改(如果允許)流程限制

如果您想知道進程如何使用其虛擬地址空間——即使用哪些地址以及用於什么目的——,請檢查/proc/PID/maps/proc/PID/smaps偽文件。 man 5 proc手冊頁中描述了格式和字段。

請記住,這些是由內核直接提供的偽文件(它們看起來像文件,但由內核根據需要生成),因此始終使用 C/POSIX 語言環境 ( LC_ALL=C LANG=C )。 現有格式不應更改,但可能會添加新字段。

您可以在 *NIX 系統上的 C 中使用getrlimitsetrlimit來獲取/設置以下內容:

  • 堆棧大小
  • 堆大小
  • 虛擬地址空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM