scp.c中main
基本流程
1、解析参数;
2、根据"最后的参数"看是本地copy,还是远程copy。
分别指向toremote和tolocal函数。
3、toremote()分三种:(和下面分析的流程类似,请参考最下面的彩色字体描述)
1)远端到远端,通过本地。(分解为两步:远端到本地,本地到远端)
2)远端到远端,不通过本地
3)本地到远端
4、tolocal()分为
1)本地到本地
执行cp命令
2)远端到本地
此情况的详解如下:
“本地scp进程 <-----pipe----> 本地ssh子进程 < -------socket------> server端sshd进程 <-------pipe--------> server端scp进程”