Debugging Question:

Download Job Interview Questions and Answers PDF

What is the output of this program?

#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);
}
len = sizeof(add_server);
len_client = sizeof(add_client);
if( bind(fd_server,(struct sockaddr*)&add_server,len) != 0)
perror("bind");
fd_client = accept(fd_server,(struct sockaddr*)&add_client,len_client);
if(fd_client == -1)
perror("accept");
read(fd_client,buff,10);
return 0;
}
a) segmentation fault
b) error at the time of compilation
c) syntax error
d) none of the mentioned

Linux Debugging Interview Question
Linux Debugging Interview Question

Answer:

b) error at the time of compilation
Explanation:
The third argument of the accept is the type of pointer.
Output:
[root@localhost google]# gcc -o san san.c
san.c: In function 'main':
san.c:26:39: warning: passing argument 3 of 'accept' makes pointer from integer without a cast [enabled by default]
/usr/include/sys/socket.h:214:12: note: expected 'socklen_t * __restrict__' but argument is of type 'int'
[root@localhost google]#

Download Linux Debugging Interview Questions And Answers PDF

Previous QuestionNext Question
What is the output of this program no 9?
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>

int main()
{
struct sockaddr_in addr;
int fd;
fd = socket(AF_INET,SOCK_STREAM,0);
printf("%dn",fd);
return 0;
}
a) -1
b) 3
c) error
d) none of the mentioned
This program can send the request to

#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("193.39.0.4");
len = sizeof(add_server);
fd = connect(fd_client,(struct sockaddr*)&add_server,len);
if(fd == -1)
perror("connect");
return 0;
}
a) the system having IP address 193.39.0.4
b) any system present in the network
c) any system of the private network
d) none of the mentioned