面试时间:一个小时
自我介绍1~2分钟
C++八股:
智能指针、智能指针的循环引用(两个智能指针指向的对象中的智能指针互相指向对方,导致两个对象不能正常析构,引起内存泄漏)、weak_ptr的作用(与shared_ptr配合使用,可以解决智能指针循环引用的问题)、shared_ptr是否是线程安全的(shared_ptr的引用计数是线程安全的,其指向的对象是需要加锁的);
虚函数的底层实现,多继承(一个派生类继承多个基类)的虚指针的虚表的形式;
map和set的区别和底层实现,map取值的find、[]、at方法的区别(at有越界检测功能)
操作系统:
进程和线程的区别;
不同进程之间是否可以共享内存?父子进程也不可以吗?(读时共享,写时拷贝)
进程之间的通讯方式;
软链接和硬链接的区别(软链接文件与源文件的inode号不同,类似与源文件的快捷方式;硬链接的inode号与源文件相同,相当于源文件的另一个文件名);
项目:
epoll和poll、select的区别;
proactor和reactor的区别;为什么选用proactor模式(被问住了。。。);
项目中使用了哪些api,详细说说setsocketopt和fcntl的作用;
epoll的LT模式和ET模式的区别;
定时检测非活动连接的功能是怎么实现的;
手撕:最大子数组和(动态规划)
最后又问了下左值和右值
Over