Basic Computer Knowledge Test Questions and Answers

Linux Debugging Questions & Answers – Unix Domain Sockets

1.

What is the output of this program?

   #include
 
   int main()
   {
       int fd_socket;
       fd_socket = socket(AF_UNIX,SOCK_STREAM,0);
       printf("%d\n",fd_socket);
       return 0;
   }

   A.) -1
   B.) 0
   C.) any integer value
   D.) none of these

Answer: Option 'D'

To use socket(), the header files sys/types.h and sys/socket.h are required.
Output:
[root@localhost sanfoundry]# gcc -o san san.c
san.c: In function ‘main’:
san.c:6:21: error: ‘AF_UNIX’ undeclared (first use in this function)
san.c:6:21: note: each undeclared identifier is reported only once for each function it appears in
san.c:6:29: error: ‘SOCK_STREAM’ undeclared (first use in this function)
[root@localhost sanfoundry]#

2.

In this program, the third argument of the socket() is used for _____ potocol.


   #include
   #include
   #include
   int main()
   {
       int fd_socket;
       if(socket(AF_UNIX,SOCK_STREAM,0) == -1)
           perror("socket");
       return 0;
   }

   A.) TCP/IP
   B.) UDP
   C.) both TCP/IP and UDP
   D.) none of these

Answer: Option 'A'

TCP/IP

3.

By this program the soket “san_sock” will create

   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un add_server;
       int fd_server;
       fd_server = socket(AF_UNIX,SOCK_STREAM,0);
       if(fd_server == -1)
           perror("socket");
       add_server.sun_family = AF_UNIX;
       strcpy(add_server.sun_path,"san_sock");
       if( bind(fd_server,(struct sockaddr*)&add_server,sizeof(add_server)) != 0)
           perror("bind");
       return 0;
   }

   A.) in the /tmp directory
   B.) in the /usr directory
   C.) in the present working directory
   D.) none of these

Answer: Option 'C'

in the present working directory

4.

What is the length of of the queue for pending connections in this program?


   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un add_server;
       int fd_server;
       fd_server = socket(AF_UNIX,SOCK_STREAM,0);
       if(fd_server == -1)
           perror("socket");
       add_server.sun_family = AF_UNIX;
       strcpy(add_server.sun_path,"server_sock2");
       if( bind(fd_server,(struct sockaddr*)&add_server,sizeof(add_server)) != 0)
           perror("bind");
       if( listen(fd_server,3) != 0)
           perror("listen");
       return 0;
   }

   A.) 0
   B.) 1
   C.) 2
   D.) 3

Answer: Option 'D'

The second argument of listen() specifies the length for the queue for pending connections.

5.

What is the output of the program?

   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un add_server, add_client;
       int fd_server, fd_client;
       int len;
       char ch;
       fd_server = socket(AF_UNIX,SOCK_STREAM,0);
       if(fd_server == -1)
           perror("socket");
       add_server.sun_family = AF_UNIX;
       strcpy(add_server.sun_path,"san_sock");
       if( bind(fd_server,(struct sockaddr*)&add_server,sizeof(add_server)) != 0)
           perror("bind");
       if( listen(fd_server,3) != 0)
           perror("listen");
       len = sizeof(add_client);
       fd_client = accept(fd_server,(struct sockaddr*)&add_client,&len);
       printf("Sanfoundry\n"); 
       return 0;
   }

   A.) the program will print the string “Sanfoundry”
   B.) the process will remain block
   C.) segmentation fault
   D.) none of these

Answer: Option 'B'

the process will remain block

6.

What is the output of this program?

   #include
   #include
   #include
 
   int main()
   {
       int fd;
       fd = socket(AF_UNIX,SOCK_STREAM,0);
       printf("%d\n",fd);
       return 0;
   }

   A.) 0
   B.) 1
   C.) 2
   D.) 3

Answer: Option 'D'

The socket() returns the lowest available file descriptor and in this program i.e. 3.
Output:
[root@localhost sanfoundry]# gcc -o san san.c
[root@localhost sanfoundry]# ./san
3
[root@localhost sanfoundry]#

7.

What is the output of this program?

   #include
   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un addr;
       int fd;
       fd = socket(AF_UNIX,SOCK_STREAM,0);
       if (fd == -1)
           perror("socket");
       addr.sun_family = AF_UNIX;
       strcpy(addr.sun_path,"san_sock");
       if (bind(4,(struct sockaddr*)&addr,sizeof(addr)) == -1)
           printf("Sanfoudnry\n");
       return 0;
   }

   A.) this program will print the string “Sanfoundry”
   B.) this program will not print the string “Sanfoundry”
   C.) segmentation fault
   D.) none of these

Answer: Option 'A'

this program will print the string “Sanfoundry”

8.

What this program is not able to connect with any client program?

   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un add_server, add_client;
       int fd_server, fd_client;
       int len;
       char ch;
       fd_server = socket(AF_UNIX,SOCK_STREAM,0);
       if(fd_server == -1)
           perror("socket");
       add_server.sun_family = AF_UNIX;
       strcpy(add_server.sun_path,"san_sock");
       if( bind(fd_server,(struct sockaddr*)&add_server,sizeof(add_server)) != 0)
           perror("bind");
       len = sizeof(add_client);
       fd_client = accept(fd_server,(struct sockaddr*)&add_client,&len);
       printf("Sanfoundry\n"); 
       return 0;
   }

   A.) the listen() is missing
   B.) the connect() is missing
   C.) the read() and write() are missing
   D.) none of these

Answer: Option 'A'

the listen() is missing

9.

What is the output of this program?


   #include
   #include
   #include
   #include
 
   int main()
   {
       struct sockaddr_un add_server, add_client;
       int fd_server, fd_client;
       int len;
       char ch;
       fd_server = socket(AF_UNIX,SOCK_STREAM,0);
       if(fd_server == -1)
           perror("socket");
       add_server.sun_family = AF_UNIX;
       strcpy(add_server.sun_path,"san_sock");
       if( bind(fd_server,(struct sockaddr*)&add_server,sizeof(add_server)) != 0)
           perror("bind");
       len = sizeof(add_client);
       fd_client = connect(fd_server,(struct sockaddr*)&add_client,&len);
       printf("Sanfoundry\n"); 
       return 0;
   }

   A.) this program will print the string “Sanfoundry”
   B.) segmentation fault
   C.) error
   D.) none of these

Answer: Option 'C'

error

10.

What is the output of this program?


    #include
    #include
    #include
    #include
    #include
 
    int main()
    {
        struct sockaddr_in addr;
        int fd;
        fd = socket(AF_UNIX,SOCK_STREAM,0);
        if (fd == -1)
            perror("socket");
        addr.sun_family = AF_UNIX;
        strcpy(addr.sun_path,"san_sock");
        if (bind(4,(struct sockaddr*)&addr,sizeof(addr)) == -1)
            printf("Sanfoudnry\n");
        return 0;
    }

   A.) error
   B.) “Sanfoundry”
   C.) segmentation fault
   D.) none of these

Answer: Option 'A'

error

The structure used for AF_UNIX if sockaddr_un.
Output:
[root@localhost sanfoundry]# gcc -o san san.c
san.c: In function ‘main’:
san.c:14:6: error: ‘struct sockaddr_in’ has no member named ‘sun_family’
san.c:15:2: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default] san.c:15:13: error: ‘struct sockaddr_in’ has no member named ‘sun_path’
[root@localhost sanfoundry]#

Linux Debugging Questions & Answers – Unix Domain Sockets Download Pdf

Recent Posts