你好,我在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位系統的字大小。 –