diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c')
| -rw-r--r-- | Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c b/Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c new file mode 100644 index 0000000..6710998 --- /dev/null +++ b/Bachelor/Verteilte Systeme/Praktikum2/loesung/telbuch_server.c @@ -0,0 +1,78 @@ +/*
+ * This is sample code generated by rpcgen.
+ * These are only templates and you can use them
+ * as a guideline for developing your own functions.
+ */
+
+#include "telbuch.h"
+
+Ergebnis *
+addentry_1_svc(addStruct *argp, struct svc_req *rqstp)
+{
+ static Ergebnis result;
+
+ /* my code START */
+
+ FILE* out;
+
+ if ((out = fopen("telbuch", "a")) == NULL) // Datei zum Schreiben öffnen
+ {
+ strcpy(result.Eintrag,"Oeffnen der Telefonbuchdatei fehgeschlagen");
+ return &result;
+ }
+ fseek(out,0,SEEK_END); // Dateizeiger an Ende setzen
+
+ // neuen Eintrag reinschreiben
+ fprintf(out, "%s %s\n", argp->Name, argp->TelNr);
+
+ fclose(out);
+
+ strcpy(result.Eintrag,"Eintrag erfolgreich");
+
+ /* my code END */
+
+ return &result;
+}
+
+Ergebnis *
+searchentry_1_svc(searchStruct *argp, struct svc_req *rqstp)
+{
+ static Ergebnis result;
+
+ /* my code START */
+ char name[41];
+ char nname[20];
+ char vname[20];
+ char telnr[20];
+
+ FILE* in;
+
+ if ((in = fopen("telbuch", "r")) == NULL) // Datei zum Lesen öffnen
+ {
+ strcpy(result.Eintrag,"Oeffnen der Telefonbuchdatei fehgeschlagen");
+ return &result;
+ }
+
+ while (!feof(in)) // Nach dem Eintrag suchen
+ {
+ fscanf(in, "%s %s %s", nname, vname, telnr);
+ strcpy(name, nname);
+ strcat(name, " ");
+ strcat(name, vname);
+ if (strcmp(argp->Name, name) == 0) // Eintrag gefunden
+ {
+ strcpy(result.Eintrag, "gefunden: ");
+ strcat(result.Eintrag, name);
+ strcat(result.Eintrag, " ");
+ strcat(result.Eintrag, telnr);
+ return &result;
+ }
+ }
+
+ // soweit kommt die Funktion nur, wenn kein Eintrag gefunden wurde.
+ strcpy(result.Eintrag, "Eintrag nicht gefunden");
+
+ /* my code END */
+
+ return &result;
+}
|
