Here's the code:
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?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"); } }