20. What is the output of this program no 16?
#include<stdio.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<errno.h>

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("Sanfoudnryn");
return 0;
}
a) error
b) "google"
c) segmentation fault
d) none of the mentioned

a) error
Explanation:
The structure used for AF_UNIX if sockaddr_un.
Output:
[root@localhost google]# 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 google]#

24. What is the output of this program?

#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>

int main()
{
int fd;
fd = socket(AF_UNIX,SOCK_STREAM,0);
printf("%dn",fd);
return 0;
}
a) 0
b) 1
c) 2
d) 3

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

Download Interview PDF

29. What is the output of this program no 12?
#include<stdio.h>

int main()
{
int fd_socket;
fd_socket = socket(AF_UNIX,SOCK_STREAM,0);
printf("%dn",fd_socket);
return 0;
}
a) -1
b) 0
c) any integer value
d) none of the mentioned

d) none of the mentioned
Explanation:
To use socket(), the header files sys/types.h and sys/socket.h are required.
Output:
[root@localhost google]# 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 google]#

30. What is the the response of this server for this client if both programs are running on the same system?

/*This is server.c*/
#include<stdio.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>

int main()
{
int fd_server, fd_client, len, len_client;
struct sockaddr_in add_server, add_client;
char buff[10];
fd_server = socket(AF_INET,SOCK_STREAM,0);
if (fd_server == -1){
perror("fd_sock");
exit(1);
}
add_server.sin_family = AF_INET;
add_server.sin_port = htons(4001);
add_server.sin_addr.s_addr = inet_addr("127.0.0.1");
len = sizeof(add_server);
len = sizeof(add_client);
if( bind(fd_server,(struct sockaddr*)&add_server,len) != 0)
perror("bind");
if(listen(fd_server,5) != 0)
perror("listen");
fd_client = accept(fd_server,(struct sockaddr*)&add_client,&len_client);
if(fd_client == -1)
perror("accept");
read(fd_client,buff,10);
return 0;
}
/*This is the client.c*/
#include<stdio.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>

int main()
{
int fd_client,fd, len;
struct sockaddr_in add_server;
fd_client = socket(AF_INET,SOCK_STREAM,0);
if (fd_client == -1){
perror("fd_sock");
exit(1);
}
add_server.sin_family = AF_INET;
add_server.sin_port = ntohs(4001);
add_server.sin_addr.s_addr = inet_addr("127.0.0.1");
len = sizeof(add_server);
fd = connect(fd_client,(struct sockaddr*)&add_server,len);
if(fd == -1)
perror("connect");
write(fd,"Hellon",6);
return 0;
}
a) the server will write back to the client whatever the clinet will write to the server
b) the client server communication will not work
c) the response can not be determined
d) none of the mentioned

a) the server will write back to the client whatever the client will write to the server
Explanation:
The loopback address is used as IP address in both the programs.

35. What is the output of this program?
#include<stdio.h>
#include<sys/socket.h>
int main()
{
int ret;
ret = shutdown(0,0);
printf("%dn",ret);
return 0;
}
a) 0
b) -1
c) can not be determined
d) none of the mentioned

b) -1
Explanation:
The shutdown() is used to close a socket and the first argument in shutdown() is socket.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
-1
[root@localhost google]#