免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: NewCore
打印 上一主题 下一主题

各位,有了新的问题,再次麻烦大家give me a hand [复制链接]

论坛徽章:
0
41 [报告]
发表于 2007-06-06 15:36 |只看该作者
原帖由 flw2 于 2007-6-6 15:28 发表于 38楼  
楼主
你的条件,不能等待是很严格吗?要不结束之后再遍历一下多简单



这样对我的应用来说就没有任何意思,我需要其实就是把文件名拿来显示到自己的UI上.

论坛徽章:
0
42 [报告]
发表于 2007-06-06 15:37 |只看该作者
很好办,它确实是到输出,直接
main开头,setbuf(stdout,NULL);

论坛徽章:
0
43 [报告]
发表于 2007-06-06 15:39 |只看该作者
to flw2:

我现在下载了个busybox上的tar的源代码,现在可以编到我自己的程序里了,但是tar执行的时候出现了错误,还在修改中

看来是没有其他颁发了,后续有问题我在请教吧.或者你有可用的tar得源码? 那就省了我很多事了.

论坛徽章:
0
44 [报告]
发表于 2007-06-06 15:40 |只看该作者
原帖由 flw2 于 2007-6-6 15:37 发表于 42楼  
很好办,它确实是到输出,直接
main开头,setbuf(stdout,NULL);



这个我试过了阿,本贴中,我贴出来的代码就做过这样的尝试啊....

论坛徽章:
0
45 [报告]
发表于 2007-06-06 15:41 |只看该作者
这个是我发在前面贴子里的:

各位,我按照昨天的提示,打开文件时设置同步标志,然后加上了缓冲设置,如下:

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

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

/*************设置为行缓冲*******************/   
    fp = fdopen(fd, "w+");
    setvbuf(fp, linebuf, _IOLBF, BUFLEN);
/*****************************************/   
    dup2(fd, 1)

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

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

    while((count = read()) >= 0)         /* 这里count一直=0,除非system()返回,那个时候数据才被写道文件a.out中 */
    {
        if(count == 0)                /* 数据为0,判断子进城是否结束,结束就退出,没结束sleep一下后继续去读 */
        {
            
        }
        else                        /* 处理读出来的数据 */
        {
        }      
    }   
}

现在还是读不出来数据啊?

论坛徽章:
0
46 [报告]
发表于 2007-06-06 15:43 |只看该作者
原帖由 NewCore 于 2007-6-6 15:40 发表于 44楼  



这个我试过了阿,本贴中,我贴出来的代码就做过这样的尝试啊....


老大,这个要在tar的main函数中,

论坛徽章:
0
47 [报告]
发表于 2007-06-06 15:44 |只看该作者
我有源码,这些不都是公开的吗。busybox里的tar也有个main函数呀,你在关键地方检察一下,比如
if (argv[0] == "tar")
setbuf NULL

论坛徽章:
0
48 [报告]
发表于 2007-06-06 15:46 |只看该作者
原帖由 flw2 于 2007-6-6 15:43 发表于 46楼  


老大,这个要在tar的main函数中,



恩啊,了解了.

现在我还是把tar搞到我自己的程序里吧.

现在在解包的时候还有点错误,折腾啊

论坛徽章:
0
49 [报告]
发表于 2007-06-06 15:49 |只看该作者
你允许该busybox?那就很简呀,别改太多,改动不会超过5行

论坛徽章:
0
50 [报告]
发表于 2007-06-06 15:50 |只看该作者
原帖由 flw2 于 2007-6-6 15:44 发表于 47楼  
我有源码,这些不都是公开的吗。busybox里的tar也有个main函数呀,你在关键地方检察一下,比如
if (argv == "tar")
setbuf NULL



恩啊,我明白了

实在不行,我可以直接把busybox里面的tar_main里面加上setbuf NULL,然后把tar命令生成后copy到我们自己的系统上,我们系统上的命令本来也就是用busybox生成的....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP