1,首先项目介绍;
2,面试问答:
操作系统:
(1)进程间通信的方式有哪几种,线程间通信的方式又有那几种?
(2)说说进程和线程的区别
(3)进程间数据是怎么分段的
(4)线程安全介绍一下
Linux问题:
(1)linux 的常用shell脚本和常用命令:
(2)熟悉makefile吗
(3)Linux 用户空间和内核空间是怎么区分的
计算机组成原理问题:
(1)怎么区分大小端
(2)int32,int64,char,unsigned char的数据表示
数据结构问题:
(1)常用的排序有哪几种?
(2)红黑树描述
(3)链表一般用在什么情况下
(4)栈的实现机制是怎么样的
(5)队列你怎么用的,环形队列呢!
c/c++问题:
(1)什么时候会用到一级指针,什么时候用到二级指针?
(2)函数/数据声明和定义的区别?
(3)普通指针和函数指针的区别?
(4)虚函数和纯虚函数的区别!
(5)说一下c++的特征
(6)文件操作
c语言常见问题总结:
(1)内存泄漏
(2)句柄泄漏
(3)其他资源泄漏(文件指针、信号量)
(4)逻辑死代码(if/while等条件判断错误)
(5)访问越界
(6)无效代码(memset使用错误、if/while等条件判断错误)
(7)数组下标未初始化
(8)指针未初始化
(9)其他变量未初始化
(10)空指针引用(FORWARD_NULL)
(11)空指针引用(REVERSE_INULL)
(12)空指针引用(NULL_RETURNS)
(13)USE_AFTER_FREE
(14)BAD_FREE
(15)SIZEOF使用错误
(16)BREAK使用错误
(17)RETURN使用错误
(18)负数翻转问题
(19)全局、静态变量保护问题
(20)死循环问题
网络问题:
(1)tcp/udp的区别
(2)熟悉socket编程吗?socket编程常用的函数
(3)三次握手和四次挥手的区别
(4)熟悉nginx吗
项目问题:
(1)项目介绍
(2)项目中如何定位问题?
linux内核面试问题:
(1)内核里面的中断机制是什么
(2)用户态和内核态怎么转换的
(3)内核中进程间是怎么通信的,线程间呢
(4)Linux内核是怎么申请空间和释放空间的
(5)熟悉slab吗
(6)Linux的页面管理机制是什么原理
(7)内存的同步机制
开发中用到的开发工具