Je voudrais écrire un navigateur de référentiel SVN en ligne. J'ai décidé de l'implémenter en tant que module Apache, en entourant le client en ligne de commande (pour le moment). Comme je commencer, je le code suivant:Lors de l'écriture du module Apache, popen (svn) échoue avec l'état de terminaison 256
FILE *f;
f = popen("/usr/local/bin/svn cat http://myrepo/svn/shell.c", "r");
char buf[1025];
if (f) {
ap_rputs("open ok\n", r);
}
else {
ap_rputs("not open ok\n", r);
}
while (fgets(buf, 1024, f) != NULL) {
ap_rprintf(r,"%s<br />", buf);
}
ap_rprintf(r, "return: %d\n", pclose(f));
Cette commande échoue, avec le statut de terminaison 256. Quelle erreur ce que cela correspond à? J'ai été incapable de trouver cette documentation.
Des appels simples tels que "cat somefile" sont imprimés avec succès. En fait, l'appel "svn info chemin vers une copie de travail" aboutit. Cependant, je voudrais traiter avec des dépôts à distance possibles pour la flexibilité.
Avez-vous des suggestions?
Éditer: Les codes de sortie doivent être compris entre 0 et 255. Celui-ci ne le fait clairement pas. Qu'est-ce que cela me dit?
Edit2: comme un cas de test, j'ai créé un script bash qui exécuterait la commande SVN souhaitée, puis imprimer sa valeur de retour. Le comportement SVN attendu n'a pas été rencontré et le script a imprimé "1" comme valeur de sortie pour SVN. C'était visible à la fin du navigateur.
rediriger stderr était une bonne idée. quand je l'ai imprimé sur stdout, j'ai reçu un avertissement sur l'authentification, comme vous l'avez suggéré. Merci! –