1.自我介绍
2.手写快排,之后再有递归形式改为非递归形式
3.两道指针和字符串的题目
4.聊项目,EHTest + llvm怎么插桩
5.linux中open文件得到是什么?
A:文件描述符(句柄),如果是-1表示失败,0,1,2表示标准输入、标准输出、标准错误。
打开文件就会获得该文件的文件描述符fd( file discriptor),它就是一个很小的整数,每个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体。
6.linux中list双向链表如何实现通过list得到数据结构体的指针(即container_of)的实现
7.UDP数据包的最大长度,TCP/IP四次挥手。
8.linux中如何查看网络状态(网络编程这些
9.mysql熟悉吗,如何提高select的效率(索引,语句顺序举个例子
10.手写一个程序输出大端还是小端(用union或者int转为char*,判断高位)
11.手写程序得到A-Z这26个字母的所有组合情况。(0-pow(2,26), 枚举每一个二进制位是0还是1)
补一个虚拟内存的理解
https://www.cnblogs.com/dyllove98/archive/2013/06/12/3132940.html
晚上11点收到二面通知。
1.自我介绍
2.职业规划是怎么样的
3.老家是哪里的
4.介绍一下项目,主要集中在操作系统方向。其他几个和系统无关的项目是什么情况?
5.linux操作系统中的proc文件系统了解吗?怎么实现的?
proc文件系统是伪文件系统,并没有在磁盘中,也不存在内存中。他是内核提供了访问内核数据的方法,一般挂载在“/proc”目录,其中的大部分内容是只读。如cpuinfo,meminfo等。可以在驱动中使用createprocentry来创建,并设置读写函数。
6.你申请的是后台开发的岗位?你对后台的技术栈了解吗?
7.文件系统inode了解吗?怎么实现?软连接和硬链接的区别是什么。
A:硬链接指向同一个inode,软连接指向同一个文件(软链接有着自己的inode,其内容是另一文件的路径名字)。
8.unix网络编程了解吗?socket编程等
9.nginx了解吗,用的怎么样?nginx是多进程的,进程间通信/同步的方式有哪些?两个进程直接如何传递文件描述符?(sendmsg+recvmsg)
10.TCP time_wait状态发生在什么时候?为什么会出现这个状态?
11.C++语言template了解多少?
12.C语言volatile关键字
13.编译的过程了解吗,说一下?
14.进程的内存地址空间是怎么样的?
15.有什么想问我的?
面试官建议:需要对linux系统更深入了解。
晚上11点收到HR面通知