Forum: PC-Programmierung Fehlermeldung C Compiler Missing Prototype


von Luke (Gast)


Lesenswert?

Hallo , habe ein Programm in C geschrieben,
/* client.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>
#include <errno.h>
#include <winsock.h>
#include <windows.h>
#include <sys\stat.h>
#include <io.h>
#define RCVBUFSIZE 8192
#define ZEILENLAENGE 80
#define MAXPUF 80

int main (int argc, char **argv ) {

   int ClientSocket;
       int result;
  char puffer [MAXPUF]= "Hallo test";

  struct sockaddr_in AddrServerSock;
  char  ip_adress [] = "127.0.0.1";
  int server_port = strtol(argv[2], NULL, 10);

  printf(argv[1]);
      printf(argv[2]);
  // Ausgabe

       ClientSocket= socket(AF_INET, SOCK_STREAM, 0); // Socket-Struktur 
anlegen

       AddrServerSock.sin_family = AF_INET; // Domain

        AddrServerSock.sin_addr.s_addr = inet_addr("127.0.0.1");
   //AddrServerSock.sin_addr.s_addr = inet_addr(ip_adress);
        AddrServerSock.sin_port = htons(1234);

        result = connect(ClientSocket, (struct 
sockaddr*)&AddrServerSock, sizeof(AddrServerSock));
        // Warten bis Aufruf vom Server (durch accept-Funktion) zurürt
        if (result == -1)
                {
                printf("Verbindung nicht moeglich!\n");
                exit(-1);
                }
                else
                printf("Port (Server): %i\n", AddrServerSock.sin_port);
        // Ausgabe des Serverports

        //fgets(puffer, MAXPUF, stdin); // Zeichenkette einlesen

        result = write(ClientSocket, puffer, MAXPUF, 0); // und 
verschicken
        if (result == -1)
        printf("Fehler beim Senden!\n");
        else
        printf("Daten erfolgreich verschickt!\n");
        result = read(ClientSocket, puffer, MAXPUF, 0); // warten auf 
Antwort vom Server

   if (result == -1)
        printf("Keine Daten empfangen !\n");
        else
        printf("Daten vom Server: %s\n", puffer);
        close(ClientSocket);

  return 0;


}


möchte damit Daten per TCP übermitteln,

bekomme jedoch immer folgende Fehlermeldung beim Linken

Erzeugen von client2.obj.
C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(49): 
warning #2027: Missing prototype for 'write'.
C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(54): 
warning #2027: Missing prototype for 'read'.
C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(60): 
warning #2027: Missing prototype for 'close'


benutze PellesC als Compiler

kennt das jemand ?? Bin etwas ratlos

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Da wirst Du wohl vergessen haben, die Headerdatei einzubinden, in der 
die Prototypen von write, read und close enthalten sind.

Welche das ist, kannst Du mit find oder findstr in einem 
Kommandozeilenfenster ("Eingabeaufforderung") selbst herausfinden.
Geh in das include-Verzeichnis des Compilers und gib folgendes ein:

  find close *.h

oder

  findstr /c:"close" *.h

von Sven P. (Gast)


Lesenswert?

unistd...

von Klaus W. (mfgkw)


Lesenswert?

... und read() kann theoretisch auch 0 liefern, dann ist der
Inhalt des Puffers nicht verändert.
Diesen Fall solltest du auch abfangen (nicht nur -1) und dann
nicht den Puffer ausgeben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.