Как я могу получить и обработать коды возврата в C-программе, если sftp не может поместить файл на sftp-сервер? - PullRequest
0 голосов
/ 05 апреля 2010

Как мы можем получить и обработать коды возврата sftp в программе на C, если sftp не может поместить файл на сервер?

Нам нужно перенести файлы снова, если sftp не может поместить их на сервер sftp.

1 Ответ

0 голосов
/ 05 апреля 2010

Предполагая, что вы хотите использовать командную строку 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 и решения, что делать дальше.

...