www.mikrocontroller.net

Forum: PC-Programmierung Fehlermeldung C Compiler Missing Prototype


Autor: Luke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unistd...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.