免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1439 | 回复: 0
打印 上一主题 下一主题

[C] 一个关于拷贝大文件过程中终止的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-22 10:24 |只看该作者 |倒序浏览
请教这里的dx一个问题,用的gtk图形库,显示一个dialog,上面有个cancel按钮,用g_timeout_add后台进行文件的拷贝操作。
拷贝函数如下:
while (!feof(fs))
        {               
                {
                        n = fread(buff, sizeof(char), sizeof(buff), fs);
                        if(n > 0 && errno != EINTR)
                        {
                                if(exit_copying)
                                {
                                        if (*exit_copying)
                                        {
                                                remove(dest_full_path);
                                                result = false;
                                                goto CATCH;       
                                        }
                                }
                                m = fwrite(buff, sizeof(char), n, fd);
                                if (m <= 0 && errno == EINTR)
                                {
                                        remove(dest_full_path);
                                        result = false;
                                        goto CATCH;
                                }
                               
                                cnt++;
                                if(cnt > 100)
                                {
                                        fflush(fd);
                                        fsync(fileno(fd));
                                        cnt = 0;                                                                                                                       
                                }
                        }
                        else
                        {                               
                                result = true;
                                goto CATCH;       
                        }
                }               
        }

如果cancel被按了,那么exit_copying就会被设置为true,那么照道理就会跳出这个循环,终止这个拷贝操作。
但是现在的问题是,这个循环不走玩,不会响应到ui上button的点击事件,没有机会设置exit_copying这个变量。

大家能不能给点建议!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP