/* * 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; }