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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: NewCore
打印 上一主題 下一主題

各位,有了新的問題,再次麻煩大家give me a hand [復(fù)制鏈接]

論壇徽章:
0
11 [報(bào)告]
發(fā)表于 2007-06-05 09:34 |只看該作者
各位,我按照昨天的提示,打開文件時(shí)設(shè)置同步標(biāo)志,然后加上了緩沖設(shè)置,如下:

void * bk_thread(void *)
{
    int fd;
    FILE * fp;
    char linebuf[BUFLEN + 1];

    fd = open("a.out", O_CREAT | O_RDWR | O_SYNC);   /* a.out 作為保存輸出信息的文件, */

/*************設(shè)置為行緩沖*******************/   
    fp = fdopen(fd, "w+");
    setvbuf(fp, linebuf, _IOLBF, BUFLEN);
/*****************************************/   
    dup2(fd, 1)

    if(0 == fork())
    {
        system("tar ... >&1");        /* 故意加 >&1 到輸出,實(shí)際上到a.out文件 */
        exit(1);
    }
   
    int fd_dup;
    int count;

    fd_dup = dup(fd);    /* 后面用fd_dup來操作 */

    while((count = read()) >= 0)         /* 這里count一直=0,除非system()返回,那個(gè)時(shí)候數(shù)據(jù)才被寫道文件a.out中 */
    {
        if(count == 0)                /* 數(shù)據(jù)為0,判斷子進(jìn)城是否結(jié)束,結(jié)束就退出,沒結(jié)束sleep一下后繼續(xù)去讀 */
        {
            
        }
        else                        /* 處理讀出來的數(shù)據(jù) */
        {
        }      
    }   
}

現(xiàn)在還是讀不出來數(shù)據(jù)?

論壇徽章:
0
12 [報(bào)告]
發(fā)表于 2007-06-05 12:41 |只看該作者
實(shí)在是敘述的糟糕,能否再清楚的描述一下你

想要怎么樣

論壇徽章:
0
13 [報(bào)告]
發(fā)表于 2007-06-05 12:42 |只看該作者
所有的緩沖如果不起作用,那么肯定是因?yàn)槟悴]有改變tar,也許tar是有緩沖的。
不知道為什么要這么干。

論壇徽章:
0
14 [報(bào)告]
發(fā)表于 2007-06-05 12:44 |只看該作者
摟住,我沒有別的意思,我只是希望你能描述的清楚一點(diǎn)。

論壇徽章:
0
15 [報(bào)告]
發(fā)表于 2007-06-05 12:46 |只看該作者
我首先把stdout重定向到了一個(gè)文件a.out, 然后一個(gè)子進(jìn)程執(zhí)行system("tar > stdout"),把數(shù)據(jù)寫到文件a.out中,同時(shí),主進(jìn)程read文件a.out,把命令執(zhí)行結(jié)果讀出來

fp = popen("tar ..","r");
tar應(yīng)該也不至于讓你等太久呀。

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2007-06-05 13:14 |只看該作者
原帖由 flw2 于 2007-6-5 12:44 發(fā)表于 14樓  
摟住,我沒有別的意思,我只是希望你能描述的清楚一點(diǎn)。


好,我再詳細(xì)說說。我要解開一個(gè)tar包,同時(shí)把tar命令執(zhí)行的輸出(即知道解包后的文件名列表)截取下來,現(xiàn)在我用的辦法是首先把標(biāo)準(zhǔn)輸出重定向到文件a.out,然后一個(gè)子進(jìn)程system("tar")到標(biāo)準(zhǔn)輸出,實(shí)際上是到了a.out,然后主進(jìn)程在從文件a.out中讀出文件列表,即tar命令的輸出。

本來應(yīng)該是很簡(jiǎn)單的一個(gè)事情,但是現(xiàn)在問題在于:子進(jìn)程在執(zhí)行system的時(shí)候,不時(shí)如同我們平時(shí)在shell下執(zhí)行tar時(shí)那樣,一邊解包,一邊把輸出到文件,而是把書出緩存起來(我估計(jì)是這樣) ,直到tar執(zhí)行完了,才把輸出一起寫到文件a.out中,但是,這是不滿足我的需求的.我需要及時(shí)知道當(dāng)前解包到那個(gè)文件了,說白了,我需要對(duì)當(dāng)前正在解包的文件的名字作其他處理.

上面就是這個(gè)的代碼實(shí)現(xiàn),而我現(xiàn)在就是不知道如何解決我上面說的問題,我嘗試了很多辦法,都沒有效果,希望你能給我點(diǎn)提示?謝謝!

論壇徽章:
0
17 [報(bào)告]
發(fā)表于 2007-06-05 13:16 |只看該作者
原帖由 flw2 于 2007-6-5 12:46 發(fā)表于 15樓  
我首先把stdout重定向到了一個(gè)文件a.out, 然后一個(gè)子進(jìn)程執(zhí)行system("tar > stdout"),把數(shù)據(jù)寫到文件a.out中,同時(shí),主進(jìn)程read文件a.out,把命令執(zhí)行結(jié)果讀出來

fp = popen("tar ..",& ...


我們的系統(tǒng)是經(jīng)過裁減的嵌入式系統(tǒng),popen已經(jīng)被裁掉了,我有苦難言!

論壇徽章:
0
18 [報(bào)告]
發(fā)表于 2007-06-05 13:37 |只看該作者
原帖由 flw2 于 2007-6-5 12:42 發(fā)表于 13樓  
所有的緩沖如果不起作用,那么肯定是因?yàn)槟悴]有改變tar,也許tar是有緩沖的。
不知道為什么要這么干。


奇怪的是,如果tar命令自己有緩沖,在shell里直接執(zhí)行tar命令的時(shí)候,也不是說解包完了,才在屏幕上顯示出來,而是一邊解包,一邊執(zhí)行的.

論壇徽章:
0
19 [報(bào)告]
發(fā)表于 2007-06-06 00:37 |只看該作者
沒人了嗎?其實(shí),我也覺得這個(gè)問題確實(shí)是相當(dāng)?shù)脑幃悾?br />
我已作了最壞打算,下了tar的源碼,準(zhǔn)備把它編到自己的代碼里面...鐵了心要把它搞定。

論壇徽章:
0
20 [報(bào)告]
發(fā)表于 2007-06-06 08:07 |只看該作者
這個(gè)任務(wù)用 shell 寫不好嗎?
您需要登錄后才可以回帖 登錄 | 注冊(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ū)
中國互聯(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