Предполагая, что вы хотите использовать командную строку sftp из C-программы, эта программа иллюстрирует один из способов сделать это (это довольно уродливо, но показывает идею):
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
int main(int argc, char *argv[])
{
int ret;
ret = system(argv[1]);
if (ret == -1) {
printf("Error in system!");
/* *** */
exit(-1);
}
ret = (signed char)WEXITSTATUS(ret);
printf("%d\n", ret);
return 0;
}
Используйте man system
, а затем man 2 wait
для получения информации о макросе WEXITSTATUS.
Значение ret является кодом возврата sftp и может использоваться для определения сбоя в sftp и решения, что делать дальше.