Следующая программа C компилирует и выдает список каталогов каталога «/ Users/home/tempdir».Как scp от C-программы?
#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 [email protected]:/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]
[[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2
Так что, очевидно, пытается выполнить УППЫ без пароля. Как мне обойти это?
Я попытался избавиться от второго аргумента «scp», однако я получаю тот же оператор использования, за исключением того, что на этот раз я получаю предупреждение «main.c: 17: warning: недостаточно аргументов аргумента, чтобы подогнать дозор» – user1068636