在Linux C++程序中,用SSH进行文件传输时,我曾经遇到过一个很诡异的问题,那就是SSH会话会无缘无故“损坏”,导致后续与SSH相关的功能无法完成。这个诡异的问题在折腾了我一段时间之后,发现是由于项目中所使用的一个SSH库的使用方式不对引起的,至于这是该lib的bug还是我不应该那样用就不好考证了,但是至少我解决了问题。问题就在于:使用scp来传输文件时,由于没有将文件“分块”传输,导致SSH会话中的某些变量被破坏,从而影响后续SSH相关功能。在我实现了控制数据块的大小之后,该问题得以解决。