void divide_test(unsigned long x, unsigned long y) { printf("divide(%lu, %lu) = %lu; %lu/%lu = %lu;\n", x, y, divide(x, y), x, y, x/y); printf("divide_1(%lu, %lu) = %lu; %lu/%lu = %lu;\n", x, y, divide_1(x, y), x, y, x/y); }
void ejercicio1_1(char *host, param arg1, char *op) { CLIENT *clnt; int *result; #ifndef DEBUG clnt = clnt_create (host, EJERCICIO1, EJERVER, "udp"); if (clnt == NULL) { clnt_pcreateerror (host); exit (1); } #endif /* DEBUG */ switch(*op) { case '+': result = suma_1(arg1, clnt); if (result == (int *) NULL) { clnt_perror (clnt, "call failed"); } else printf("El resultado de la suma es: %d \n", *result); break; case '-': result = resta_1(arg1, clnt); if (result == (int *) NULL) { clnt_perror (clnt, "call failed"); } else printf("El resultado de la resta es: %d \n", *result); break; case 'x': result = multiplica_1(arg1, clnt); if (result == (int *) NULL) { clnt_perror (clnt, "call failed"); } else printf("El resultado de la multiplicacion es: %d \n", *result); break; case '/': result = divide_1(arg1, clnt); if (result == (int *) NULL) { clnt_perror (clnt, "call failed"); } else printf("El resultado de la division es: %d \n", *result); break; default: break; } #ifndef DEBUG clnt_destroy (clnt); #endif /* DEBUG */ }
void main(int argc, char *argv[]) { CLIENT *cliente; int *return_value; float *f_return_value; char *servidor; if (argc < 5){ fprintf(stderr, "Usage:\n%s <server> <operation> <number 1> <number 2>\n", argv[0]); fprintf(stderr, "Example:\n%s localhost add 2 5\n", argv[0]); exit (1); } servidor = argv[1]; // Generating handle to call server. if ((cliente=clnt_create(servidor, CALCULATOR, CALCULATORVERS, "tcp")) == (CLIENT *) NULL) { clnt_pcreateerror(servidor); exit(2); } if (strcmp(argv[2], "add") == 0) { return_value = add_1(atoi(argv[3]), atoi(argv[4]), cliente); if (! *return_value) { fprintf(stderr, "error: couldn't add\n"); exit(1); } else{ printf("Return value = %d\n", *return_value); } exit(0); } else if (strcmp(argv[2], "sub") == 0) { return_value = sub_1(atoi(argv[3]), atoi(argv[4]), cliente); if (! *return_value) { fprintf(stderr, "error: couldn't sub\n"); exit(1); } else{ printf("Return value = %d\n", *return_value); } exit(0); } else if (strcmp(argv[2], "times") == 0) { return_value = times_1(atoi(argv[3]), atoi(argv[4]), cliente); if (! *return_value) { fprintf(stderr, "error: couldn't times\n"); exit(1); } else{ printf("Return value = %d\n", *return_value); } exit(0); } else if (strcmp(argv[2], "divide") == 0) { f_return_value = divide_1(atoi(argv[3]), atoi(argv[4]), cliente); if (! *f_return_value) { fprintf(stderr, "error: couldn't divide\n"); exit(1); } else{ printf("Return value = %.3f\n", *f_return_value); } exit(0); } else{ fprintf(stderr, "Avaiable operations: add, sub, times, divide\n"); } clnt_destroy(cliente); }