2010-04-05 9 views
0

Comment pouvons-nous obtenir et gérer les codes de retour sftp dans un programme C si sftp ne parvient pas à mettre le fichier dans un serveur?Comment puis-je obtenir et gérer un code retour dans un programme C si sftp ne parvient pas à placer le fichier dans un serveur sftp?

Nous devons transférer à nouveau les fichiers si sftp ne parvient pas à les placer dans le serveur sftp.

+0

Appelez-vous une fonction de bibliothèque? en utilisant un outil de ligne de commande? plus d'informations sont nécessaires. – rerun

+0

en utilisant un outil de ligne de commande – Thi

Répondre

0

En supposant que vous souhaitez utiliser la ligne de commande sftp à partir d'un programme C, ce programme illustre une façon de le faire (c'est plutôt laid, mais montre l'idée):

#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; 
} 

Utilisez man system, puis man 2 wait pour info sur la macro WEXITSTATUS.

La valeur de ret est le code de retour de sftp et peut être utilisée pour déterminer l'échec de sftp et décider quoi faire ensuite.