Linux Device Drivers

  Home  Operating System Linux  Linux Device Drivers


“Device Drivers frequently Asked Questions by expert members with experience in Linux Device Drivers. These questions and answers will help you strengthen your technical skills, prepare for the new job test and quickly revise the concepts”



19 Linux Device Drivers Questions And Answers

7⟩ What is the output of this program? #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int ptr; ptr = (int)malloc(sizeof(int)*10); return 0; } a) syntax error b) segmentaion fault c) run time error d) none of the mentioned

d) none of the mentioned

Explanation:

The memory has been allocated but we can not access rest of the memory other than 4 bytes.

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

[root@localhost google]#

 140 views

8⟩ What is the output of this program? #include<stdio.h> #inlcude<stdlib.h> int main() { int *ptr; double *ptr; printf("%dn",sizeof(ptr)); return 0; } a) 4 b) 8 c) the compiler will give the error d) segmentaion fault

c) the compiler will give the error

Explanation:

Just see the output carefully.

Output:

[root@localhost google]# gcc -o san san.c

san.c: In function 'main':

san.c:8:10: error: conflicting types for 'ptr'

san.c:7:7: note: previous declaration of 'ptr' was here

[root@localhost google]#

 130 views

9⟩ In this program the two printed memory locations has the difference of ___ bytes. #include<stdio.h> #include<stdlib.h> int main() { int *ptr; ptr = (int*)malloc(sizeof(int)*2); printf("%pn",ptr); printf("%pn",ptr+1); return 0; } a) 1 b) 4 c) can not be determined d) none of the mentioned

b) 4

Explanation:

Pointer will increment by 4 bytes because it is the types of integer.

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

0x9b4e008

0x9b4e00c

[root@localhost google]#

 156 views

10⟩ Which one of the following in true about this program? #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char *ptr; printf("%pn",ptr); ptr = (char *)malloc(sizeof(char)); printf("%pn",ptr); return 0; } a) this program will give segmentation fault b) this program will print two same values c) this program has some syntax error d) none of the mentioned

d) none of the mentioned

Explanation:

This program will print two different values.

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

0x4a77cff4

0x980c008

[root@localhost google]#

 186 views

11⟩ What is the output of this program? #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char *ptr; ptr = (char*)malloc(sizeof(char)*11); strcpy(ptr,"google"); printf("%dn",*ptr); return 0; } a) s b) google c) 115 d) segmentation fault

c) 115

Explanation:

This program will print the equivalent decimal value at location pointed by "ptr".

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

115

[root@localhost google]#

 137 views

12⟩ Tell me what is the output of this program? #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char *ptr; memcpy(ptr,"google",11); printf("%sn",ptr); return 0; } a) google b) segmentation fault c) syntax error d) none of the mentioned

b) segmentation fault

Explanation:

Memory must be allocated to pointer "ptr".

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

Segmentation fault (core dumped)

[root@localhost google]#

 158 views

15⟩ Do you know what is the output of this program? #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char *ptr; memcpy(ptr,"google",11); printf("%sn",ptr); return 0; } a) google b) segmentation fault c) syntax error d) none of the mentioned

b) segmentation fault

Explanation:

Memory must be allocated to pointer "ptr".

Output:

[root@localhost google]# gcc -o san san.c

[root@localhost google]# ./san

Segmentation fault (core dumped)

[root@localhost google]#

 145 views