亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1859 | 回復(fù): 3
打印 上一主題 下一主題

內(nèi)存映射文件的使用 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-08-28 09:31 |只看該作者 |倒序?yàn)g覽
    fdin=open("data.in",O_RDWR);

    lseek(fdin, 1024, SEEK_SET);
    write(fdin, "", 1);

    if((src=mmap(NULL,size,PROT_WRITE,MAP_SHARED,fdin,0))==MAP_FAILED)
    {
        printf("src map error\n");
        return -1;
    }

    memset(src, '\0', 1025);
    const char *buf = "hello";
    memcpy(src, buf, strlen(buf));
    msync(src, strlen(src) + 1, MS_SYNC);


出來(lái)的結(jié)果如附件所示,哪位大哥大姐幫忙看看為什么?
1.png是輸出文件用vim打開(kāi)的效果
2.png是用gedit打開(kāi)的效果

[ 本帖最后由 onmeiei 于 2009-8-28 09:34 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-08-28 09:43 |只看該作者

回復(fù) #1 onmeiei 的帖子

src直接printf出來(lái)的話就是hello,長(zhǎng)度也對(duì)著
把輸出文件用ms notepad打開(kāi)也是好的。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-08-28 10:59 |只看該作者

回復(fù) #2 onmeiei 的帖子

就沒(méi)個(gè)人幫忙頂一下?????????????????

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-08-29 17:24 |只看該作者
為什么? 當(dāng)然是這樣
你把文件映射到內(nèi)存
然后用memset 設(shè)置了1025個(gè)'\0'字符,這樣這段內(nèi)存應(yīng)該全是‘\0’
之后你立馬又用memcpy 將hello 字符 復(fù)制過(guò)來(lái)了, 注意復(fù)制是從文件的起事位置復(fù)制的
所以 前 5個(gè)字符變成 了 hello , 所以vim顯示就是 圖1那樣
用printf 打印 只能出現(xiàn) hello 為啥,因?yàn)閏 字符串以 ‘\0’字符結(jié)尾。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP