下面的 C 程序编译并输出“/Users/home/tempdir”目录的目录列表。
#include <stdio.h>
#include <unistd.h>
int main(int argc, const char * argv[])
{
execl("/bin/ls", "ls", "/Users/home/tempdir");
// execl("/usr/bin/scp", "scp", "myfile.txt home@127.0.0.1:/Users/home/scpdir");
return 0;
}
这表明可以从 C 程序执行二进制文件。我试图弄清楚如何执行“scp”二进制文件并输入所需的密码。如何修改上述代码以通过 scp 实现成功的文件传输?
我尝试了上面注释掉的行,但是在未注释时收到以下消息:
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
所以它显然试图在没有密码的情况下执行 scp。我该如何解决这个问题?