Socket und errno zurücksetzten



  • Hallo NG,

    ich hab ein Socket, der mit close geschlossen wird. Die Variable, die den Socket gespeichert hatte muss nun auch zurückgesetzt werden. Ich weiß, daß -1 der richtige Wert ist, aber es gibt eine Konstante dafür. Wie heißt sie?

    int mySocket = socket(AF_INET, SOCK_STREAM, 0);
    
    // bla bla
    
    int returnValue = close(mySocket);
    mySocket = -1; // <-- Häßlich, Konstante wäre schöner
    

    Und wenn errno mal ausgewertet wurde, sollte die Variable zurückgesetzt werden. Null soll dafür der richtige Wert sein, aber auch dafür würde ich gerne eine Konstante benutzen.

    const int BUFFERSIZE = 65536;
    char buffer[BUFFERSIZE];
    
    int returnValue = recv(mySocket, buffer, BUFFERSIZE, 0);
    
    if (-1 == returnValue){
      cerr << "Error: " << strerror(errno) << endl;
      errno = 0; // <-- Häßlich, Konstante wäre schöner
    }
    

    Danke schon mal,
    M. Incani



  • das mit dem socket ist vollkommen unnötig. errno musst du nur in sehr sehr seltenen fällen selbst setzen.

    Sometimes, when -1 is also a valid successful return value one has to zero errno before the call in order to detect possible errors.

    dies gilt für funktionen, bei denen man durch ihren rückgabewert nicht erkennen kann, ob sie geklappt haben oder nicht.



  • Warum machst du dir nicht selbst Konstanten ?


Anmelden zum Antworten