A version of this page is also available for

Windows Embedded CE 6.0 R3


This function gets the error status for the last operation that failed.


int WSAGetLastError(void);



Return Value

The return value indicates the error code for this thread's last Windows Sockets operation that failed. For a list of error codes, see Winsock Error Codes.


This function returns the last network error that occurred. When a particular Windows Sockets function indicates that an error has occurred, this function should be called to retrieve the appropriate error code. This error code can be different from the error code obtained from getsockopt (Windows Sockets) SO_ERROR, which is socket-specific because WSAGetLastError is for all thread-specific sockets.

A successful function call, or a call to WSAGetLastError, does not reset the error code. To reset the error code, use the WSASetLastError function call with iError set to zero. A getsockopt SO_ERROR also resets the error code to zero.

The WSAGetLastError function should not be used to check for an error code on receipt of an asynchronous message. In this case, the error code is passed in the lParam parameter of the message, and this can differ from the value returned by WSAGetLastError.


Header winsock2.h
Library Ws2.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


getsockopt (Windows Sockets)