这绝不仅仅靠C语言能够做到,需要配合操作系统提供的多线程编程。简单说下思路吧:主线程由于控制主程序,并且可以显示下载进度;子线程用于做文件的下载,并且要每隔一段时间与主线程通信,把进度汇报给主线程。至于线程的控制、以及文件的下载(涉及到所采用的网络通信协议),需要结合你所使用的操作系统提供的API了。