Debugging Question:
Download Questions PDF

What is the output of this program no 11?
#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;
fd_server = socket(AF_INET,SOCK_STREAM,0);
close(fd_server);
perror("accept");
if(listen(fd_server,5) != 0)
perror("listen");
fd_client = accept(fd_server,(struct sockaddr*)&add_server,&len);
if(fd_client == -1)
return 0;
}
a) syntax error
b) error at the time of compilation
c) segmentation fault
d) none of the mentioned

Linux Debugging Interview Question
Linux Debugging Interview Question

Answer:

d) none of the mentioned
Explanation:
The program will not work properly because the file descriptor is not available in the for listen() and accept().
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
accept: Success
listen: Bad file descriptor
[root@localhost google]#

Download Linux Debugging Interview Questions And Answers PDF

Previous QuestionNext Question
What is the output of this program no 10?
#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;
fd_server = socket(AF_INET,SOCK_STREAM,0);
fd_client = accept(fd_server,(struct sockaddr*)&add_server,&len);
if(fd_client == -1)
perror("accept");
if(listen(fd_server,5) != 0)
perror("listen");
return 0;
}
a) syntax error
b) error at the time of compilation
c) segmentation fault
d) none of the mentioned
On which system call, this program (process) waits until the server responds?

#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) socket()
b) connect()
c) both (a) and (b)
d) none of the mentioned