【发布时间】:2014-01-07 14:23:43
【问题描述】:
您好,我正在 Linux 下编程(使用 C 语言)。
当我使用 ptrace() 读取数据时,它会返回一个单词。 在所有示例中,我看到人们使用 long 来读取输入。 Long 是否总是具有相同大小的单词? 我知道一个词是处理器处理数据的自然大小(寄存器大小)。但这是否也适用于不同架构上的 long 等?
OValue_t outputValue;
//.su_word is a long
outputValue.su_word = ptrace(PTRACE_PEEKDATA,Process.ProcId,address,0);
printf("word : %ld\n", outputValue.su_word);
printf("int8 : %i\n", outputValue.su_int8);
编辑:感谢 Krzysztof Kosiński/unwind 和 Jonathan Leffler here 的回答,我知道 ptrace 返回一个 long 并且 long 足以容纳一个词。
http://docs.oracle.com/cd/E19620-01/805-3024/lp64-1/index.html
【问题讨论】:
标签: c linux word long-integer ptrace