Re: [問題] mmap memory issue

看板LinuxDev作者 (JACK)時間16年前 (2009/12/20 11:21), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/3 (看更多)
請問一個網路上例子 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

12/20 11:56, , 1F
看起來跟 endian 有關
12/20 11:56, 1F

12/20 13:04, , 2F
樓上正解
12/20 13:04, 2F
文章代碼(AID): #1BBPWSuY (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #1BBPWSuY (LinuxDev)