- 平臺:Linux的x86的3.2.0(Debian的7.1)
- 編譯器:GCC 4.7.2(Debian的4.7.2-5)
我寫生成的函數「隨機」整數通過讀取「隨機」值的內存分配部分。這個想法是基於未初始化變量具有未定義值的事實。我最初的想法是使用malloc()分配一個數組,然後使用它的未初始化元素來生成一個隨機數。但malloc()傾向於返回NULL塊的內存,所以我不能保證有任何可讀的內容。所以我想讀取一個單獨的進程內存以保證NULL以外的值。我目前的想法是找到第一個有效的內存地址並從那裏讀取,但我不知道如何做到這一點。我嘗試初始化一個指向NULL的指針,然後遞增1,但如果我嘗試打印引用的內存位置,則會出現分段錯誤。所以我的問題是如何讀取單獨的進程內存。除了讀取它之外,我不需要對內存做任何事情。查找分配的內存
什麼是「NULL塊內存」?一個被初始化爲所有字節的零?或者是其他東西? –
與此不同的是,如果你的進程讀取進程的內存,人們會感到不安;你可能正在閱讀密碼,信用卡號碼,社會安全號碼,或其他各種東西,這些東西都應該保持私密。你必須是root才能讀取任意其他用戶的進程;如果你真的想要,你可以閱讀你自己的進程的內存,但是你真的不需要,因爲你沒有處理真正的隨機值。 –
'/ dev/[u] random'就是隨機的,而且問題少得多。 – nneonneo