Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <rpc/rpc.h>
  3. #include <errno.h>
  4. #include "rls.h"
  5. extern int errno;
  6. int main(int argc, char *argv[])
  7. {
  8. CLIENT *cl;
  9. char *server;
  10. char *dir;
  11. readdir_res *result;
  12. namelist nl;
  13. if( argc != 3 ) {
  14. fprintf(stderr, "usage: %s host directory\n", argv[0]);
  15. exit(1);
  16. }
  17. /* Command line arguments */
  18. server = argv[1];
  19. dir = argv[2];
  20. /* Client handle erzeugen (mit TCP Protokoll) */
  21. cl = clnt_create(server, DIRPROG, DIRVERS, "tcp");
  22. if( cl == NULL ) {
  23. /* Verbindungsaufbau erfolglos */
  24. clnt_pcreateerror(server);
  25. exit(1);
  26. }
  27. /* Eigentlicher Aufruf der entfernten Prozedur */
  28. result = readdir_1(&dir, cl);
  29. if( result == NULL ) {
  30. /* Fehler beim RPC-Aufruf */
  31. clnt_perror(cl, server);
  32. exit(1);
  33. }
  34. /* RPC-Aufruf erfolgreich, Resultat auswerten */
  35. if( result->remoteErrno != 0 ) {
  36. /* RPC-Fehler aus Server */
  37. errno = result->remoteErrno;
  38. perror(dir);
  39. exit(1);
  40. }
  41. /* Resultat ohne Fehler, Verzeichnisliste ausgeben */
  42. for( nl=result->readdir_res_u.list;
  43. nl != NULL;
  44. nl = nl->pNext) {
  45. printf("%s\n", nl->name);
  46. }
  47. exit(0);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement