Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Incompatibel ?

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.02.2003
    Beiträge
    21

    Incompatibel ?

    habe mit folgendem code schwierigkeiten, aber für mich irgendwie unverständlich,

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/time.h>
    #include <sys/socket.h>
    #include <rpc/rpc.h>
    #include <netdb.h>
    
    extern struct sockaddr_in *saddr;
    
    int
    check_rpc_service(long program)
    {
    	int sock = RPC_ANYSOCK;
    	CLIENT *client;
    	struct timeval timeout;
    	enum clnt_stat cstat;
    
    	timeout.tv_sec = 10;
    	timeout.tv_usec = 0;
    	client = clntudp_create(saddr, program, 1, timeout, &sock);
    	if(!client)
    		return -1;
    	timeout.tv_sec = 10;
    	timeout.tv_usec = 0;
    	cstat = RPC_TIMEDOUT;
    	cstat = clnt_call(client, 0, xdr_void, NULL, xdr_void, NULL, timeout);
    	if(cstat == RPC_TIMEDOUT)
    	{
    		timeout.tv_sec = 10;
    		timeout.tv_usec = 0;
    		cstat = clnt_call(client, 0, xdr_void, NULL, xdr_void, NULL, timeout);
    	}
    	clnt_destroy(client);
    	close(sock);
    	if(cstat == RPC_SUCCESS)
    		return 1;
    	else if(cstat == RPC_PROGVERSMISMATCH)
    		return 1;
    	else return 0;
    }

    Fehlermeldung:
    Code:
    root@lian tmp # gcc -c checkrpc.c
    checkrpc.c: In function `check_rpc_service':
    checkrpc.c:27: warning: passing arg 3 of pointer to function from incompatible pointer type
    checkrpc.c:27: warning: passing arg 5 of pointer to function from incompatible pointer type
    checkrpc.c:32: warning: passing arg 3 of pointer to function from incompatible pointer type
    checkrpc.c:32: warning: passing arg 5 of pointer to function from incompatible pointer type
    root@lian tmp #
    27 = cstat = clnt_call(client, 0, xdr_void, NULL, xdr_void, NULL, timeout);
    32 = cstat = clnt_call(client, 0, xdr_void, NULL, xdr_void, NULL, timeout);

  2. #2
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90

    Question

    Müsste es nicht heissen

    Code:
    27 = cstat = clnt_call(client, 0, (void *)&xdr_void, NULL, (void *)&xdr_void, NULL, timeout); 
    32 = cstat = clnt_call(client, 0, (void *)&xdr_void, NULL, (void *)&xdr_void, NULL, timeout);


    Oder hab ich mich verzählt ?
    Code:
    ------>>>|| Gentoo Linux ||<<<------

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.02.2003
    Beiträge
    21
    das funzt super -danke-, nur warum? *grübel*

  4. #4
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90

    Talking

    Vielleicht weil es void Zeiger sind ?
    Code:
    ------>>>|| Gentoo Linux ||<<<------

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •