嵌入式LINUX试题
1、你平常是怎么用C写嵌入式系统的死循环的?
2、解释signal函数原型的含义:
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
4、volatile有什么含意?
5、分析代码:
int main(){ pid_t pid1,pid2;
if((pid1=fork()) = = 0){
sleep(3);
printf(“info1 from child process_1/n”);
exit(0);
printf(“info2 from child process_1/n”);
}
else{
if((pid2=fork()) = = 0){
sleep(1);
printf(“info1 from child process_2/n”);
exit(0);
}
else{
wait(NULL);
wait(NULL);
printf(“info1 from parent process/n”);
printf(“info2 from parent process”);
_exit(0);
}
}
输出结果为:_________________________________________________
6、写一条命令,实现在/dir下找出所有包含“hello world”字符串的文件。
7、fork()的返回值不可能是( )
[A] -1 [B] 0 [C] 1 [D] 大于10000的正整数 [E] 取决于具体实现
8、假设程序creatfile的所有者是foo且被设置了设置用户ID,该程序用来创建文件abc,请讨论当以用户bar执行程序时所创建的文件abc的用户ID和用户组ID。
9、对于标准IO流应如何使用fsync函数?为什么?
10、下面的两段程序中,循环能否执行?为什么?
A:
unsigned short i;
unsigned short index = 0;
for(i = 0; i <index-1; i++)
{
printf(“a/n”);
}
B:
unsigned short i;
unsigned long index = 0;
for(i = 0; i <index-1; i++)
{
printf(“b/n”);
}
11 试简述LINUX驱动中字符设备和块设备的区别?
12、请从网卡、USB HOST、LCD驱动器、NAND FLASH、WIFI 、音频芯片中选择一个或者2个(可以以具体的芯片为例),对下面的问题做答:
1. 假设LINUX内核中有相应设备驱动程序,内核是怎么识别它的?
2. 编写相应LINUX驱动的流程?