不懂tar 也不懂popen...设想用递归。可是太麻烦了。
追答对,就是因为太麻烦了所以才让你用tar的。
popen简单说就是把一个程序的输出当作文件来读,比如ls可以列出一个文件夹下的所有文件,
那么
FILE* fp = popen("ls", "r");
以后,从fp里面读取数据,就和读取一般文件一样,能读到一个文件夹下的所有文件的列表(字符串格式)
关于tar的使用,很容易,你可以上网搜一下,然后自己尝试一下 tar -cf 和 tar -xf 这样的,然后再尝试一下 tar -c 和 tar -x 配合输入输出重定向(就是 > 和 < 符号),这两个学起来……应该一个半天内可以搞定?
popen和tar弄会以后,就可以直接用popen从tar的输出读数据,然后用同样的方法还原数据。
tar其实就是这么一个工具,相当于你用的那些什么压缩软件,可以把一堆文件打包成一个文件的,只是它只管打包解包不管压缩解压。我的想法就是tar打包以后发过去,对方收到后用tar解包。只是省去了中间存文件的步骤
为了方便理解:
本来是这样:
发送端:一堆文件——tar打包——一个文件——传到对方
接收端:收到数据——存成文件——tar解包——一堆文件
现在是这样
发送端:一堆文件——tar打包——传到对方
接收端:收到数据——tar解包——一堆文件