Behavior of shutdown(sock, SHUT_RD) with TCP

When using a TCP socket, what does shutdown(sock, SHUT_RD); actually do? Does it just make all recv() calls return an error code? If so, which error code? Does it cause any packets to be sent by...