你好,我在Linux下编程(在C)。长的大小等于一个字的大小
当我使用ptrace()读取数据时,它返回一个单词。 在所有的例子中,我看到人们用很长的时间来阅读输入。 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);
编辑:感谢克日什托夫·科辛斯基/放松和乔纳森·莱弗勒here答案我的理解是ptrace的返回长和长是一个字够大。
http://docs.oracle.com/cd/E19620-01/805-3024/lp64-1/index.html
谢谢,但在手册中写着'在地址处读一个字',那么他们如何能够假设一个长的字足够大以便在不同的平台上存储一个字? – Jona
http://stackoverflow.com/questions/589575/size-of-int-long-etc乔纳森的回答给了我答案 – Jona
“int”不等于x86-64和大多数其他64位系统的字大小。 –