看板 LinuxDev 關於我們 聯絡資訊
請問一個網路上例子 http://learn.akae.cn/media/ch28s08.html 0000000 68 65 6c 6c 6f 0a h e l l o \n 0000006 為什麼做完p[0] = 0x30313233; 會變成 $ od -tx1 -tc hello 0000000 33 32 31 30 6f 0a 3 2 1 0 o \n 0000006 從hello 變成3210o呢? ※ 引述《mayasky ( )》之銘言: : ※ 引述《RiverJackson (JACK)》之銘言: : : 請問一下 : : 我去開hello這個檔案 : : 但是free一下 並沒有減少 4M空間(4000000) : : 還有為什麼p 要宣告成int呢 : : exit(1); : : } : : p = mmap(NULL, 4000000, PROT_WRITE, MAP_SHARED, fd, 0); : : if (p == MAP_FAILED) { : : perror("mmap"); : : exit(1); : : } : : close(fd); : : p[0] = 0x30313233; : : munmap(p, 6); : : return 0; : 1.沒減少4M~因為你還沒真的用4M,只是先幫你作好4M的對應(VMA),demanded paging : 2.你要用unsinged int也可以,反正一樣長,但你用VOID卻不能給值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.164.142
james732:看起來跟 endian 有關 12/20 11:56
mayasky:樓上正解 12/20 13:04