Here's the code:
Code:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>

int main()
{
	int sock = socket(AF_LOCAL, SOCK_STREAM, 0);
	if(sock == -1)
	   printf("Error\n");
	
	char *s[100];
	socklen_t *x;
	int ret = getsockopt(sock, SOL_SOCKET, 1, s, x);
	if(ret==0)
       printf("Sucess!\n");
	else
	{
		if(errno==EBADF)
            printf("The argument sockfd is not a valid file descriptor.\n");
		else if(errno==EFAULT)
		    printf("The address pointed to by optval is not in a valid part of.the process address space.  For getsockopt(), this error may also be returned if optlen is not in a valid part of the process address space.\n");
		else if(errno==EINVAL)
		    printf("optlen invalid in setsockopt().  In some cases this error.can also occur for an invalid value in optval (e.g., for the IP_ADD_MEMBERSHIP option described in ip(7)).\n");
		else if(errno==ENOPROTOOPT)
		    printf("The option is unknown at the level indicated.\n");
		else if(errno==ENOTSOCK)
		    printf("The file descriptor sockfd does not refer to a socket.\n");
	}
}
When executed, it displays the text of the EFAULT error. I did everything according to the instructions and still can not understand what the problem is! Who can tell?