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

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

Chinaunix

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

[C] 一個(gè)在Linux寫文檔的簡(jiǎn)單問題 (已解決) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-06 02:05 |只看該作者 |倒序?yàn)g覽
在Linux上寫了一個(gè)很簡(jiǎn)單的文檔寫入及讀取的小程式,可以寫入,但是卻無(wú)法讀取。
編譯沒有問題,也可以正常執(zhí)行,但是所產(chǎn)生的文檔屬性卻是

---------- 1 ken ken   11 2009-07-06 02:04 test.txt

雖然知道應(yīng)該是umask的問題,但還是不清楚要如何解決,請(qǐng)協(xié)助是那里出了問題

int main()      {
        int fd;
        int size;
        char s[] = "Test 123!\n";
        char buffer[80];

        fd = open("test.txt", O_WRONLY|O_CREAT);
        write(fd, s, sizeof(s));
        close(fd);

        fd = open("test.txt", O_RDONLY);
        size = read(fd, buffer, sizeof(buffer));
        close(fd);

        printf("%s", buffer);

        return 0;
}

------------------------------------------------------
感謝版主的提示,在參考 《UNIX環(huán)境高級(jí)編程》4.5時(shí)發(fā)現(xiàn),如果是 create 新的文檔時(shí),就必須給第三個(gè)參數(shù) st_mode
更改為
fd = open("test.txt", O_WRONLY|O_CREAT, S_IRSER|S_IWUSR); 后,所產(chǎn)生的文檔屬性就變成
-rw------- 1 ken ken   11 2009-07-06 12:31 test.txt
讀取成功

[ 本帖最后由 uniken 于 2009-7-6 12:39 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-07-06 06:00 |只看該作者
關(guān)于umask,建議重新讀一遍《UNIX環(huán)境高級(jí)編程》4.5。

但是你這段代碼的問題在這里:

  1. fd = open("test.txt", O_WRONLY|O_CREAT);
  2. ...

  3. fd = open("text.txt", O_RDONLY);
  4. size = read(fd, buffer, sizeof(buffer));

復(fù)制代碼


你看看你讀的時(shí)候和寫的時(shí)候文件是同一個(gè)嗎?

說實(shí)話,我很無(wú)語(yǔ)........

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-07-06 08:39 |只看該作者
謝謝您的回復(fù),但是我無(wú)法理解,寫入與讀取的文檔為同一個(gè),有什么問題?
開啟一個(gè)新文檔,寫入之后關(guān)閉,然后打開讀取,之后關(guān)閉,正常的程序不是這樣做的?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-07-06 09:04 |只看該作者

回復(fù) #3 uniken 的帖子

你再仔細(xì)看看你代碼里面的兩個(gè)文件名。。。
寫錯(cuò)了

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-07-06 09:06 |只看該作者
原帖由 uniken 于 2009-7-6 02:05 發(fā)表
在Linux上寫了一個(gè)很簡(jiǎn)單的文檔寫入及讀取的小程式,可以寫入,但是卻無(wú)法讀取。
編譯沒有問題,也可以正常執(zhí)行,但是所產(chǎn)生的文檔屬性卻是

---------- 1 ken ken   11 2009-07-06 02:04 test.txt

雖然知道應(yīng)該是umask的問題,但還是不清楚要如何解決,請(qǐng)協(xié)助是那里出了問題

int main()      {
        int fd;
        int size;
        char s[] = "Test 123!\n";
        char buffer[80];

        fd = open("test.txt", O_WRONLY|O_CREAT);
        write(fd, s, sizeof(s));
        sync();
        close(fd);

        fd = open("text.txt", O_RDONLY);
        size = read(fd, buffer, sizeof(buffer));
        close(fd);

        printf("%s", buffer);

        return 0;
}
雖然知 ...


LZ看到什么不同了嗎?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-07-06 09:11 |只看該作者
個(gè)個(gè)做測(cè)試的好料~~~~

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-07-06 09:20 |只看該作者

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

除那個(gè)小問題外很好的程序了

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-07-06 09:39 |只看該作者
原帖由 uniken 于 2009-7-6 02:05 發(fā)表
在Linux上寫了一個(gè)很簡(jiǎn)單的文檔寫入及讀取的小程式,可以寫入,但是卻無(wú)法讀取。
編譯沒有問題,也可以正常執(zhí)行,但是所產(chǎn)生的文檔屬性卻是

---------- 1 ken ken   11 2009-07-06 02:04 test.txt

雖然知 ...



sync();
及 test.txt/ text.txt 是在無(wú)法等到正確執(zhí)行結(jié)果,重復(fù)修改程序所遺留下來(lái)的,抱歉造成您的誤解!

問題的原因還是在開啟寫入文檔后,文檔屬性的問題(---------- 1 ken ken   11 2009-07-06 02:04 test.txt),造成無(wú)法讀取。

(曾經(jīng)用chmod修改文件屬性為 -rw-------, 并且把 read部分另外用編譯后讀取,這樣就正常)
您需要登錄后才可以回帖 登錄 | 注冊(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)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP