大华嵌入式c面经新鲜出炉    简历上的项目:Linux下c++轻量级web服务器(就抓着这这个问了其他的没问)    项目源码:https://gitee.com/menghaikang/tiny-web-server.git   原作者再github上项目名为tinywebserver,配合《linux高性能服务器编程》食用更佳    问题:    服务器框架;    线程池;    定时器:时间轮(同类解决方案还有时间堆)    Tcp/ip具体包含什么;需要具体到源端口号,目标端口号,序号,urg、ack、psh、rst、syn、fin标志位,校验和,数据等    有没有看过tcp协议的具体样子;tcpdump抓到的那种    Tcp三次握手发生了什么;服务器和客户端你侬我侬    Tcp连接时socket的参数是怎样的;和udp对比区别在于第二个参数,tcp第二个参数是sock_stream,udp第二个参数是sock_dgram    日志怎么实现的;我回答时提到了设计模式,就连带问了我用的什么设计模式,日志是单例模式-懒汉式(用到再初始化,还有一个饿汉式函数启动时就初始化),日志需要注意信息是分等级的,debug、info、error之类    信号;实现时需要统一事件源setsockopt函数         语言    c++虚函数表里具体有什么,具体到结构    模板;我不会    迭代器有用吗;有;哪些;vector,stack,unordered_map(我是当成哈希表用的);有了解过容器底层吗;map或者set的底层是红黑树,unordered_map和unordered_set底层是hashtable,增改的复杂度;         操作系统原理    函数回调是如何实现的(可以翻译为栈帧的工作原理或者调用函数时栈帧是如何变化的)?    我是以x86架构回答的设计rbp和rax寄存器,arm架构操作的寄存器有所区别         项目会因人而异,我面的这个部门,我反问时那个领导时透露技术栈是c/c++,unix编程,tcp/ip网络,如果你的项目与这些技术都无关,那他就可能想到哪问道哪         他的面试是所有面试接在一起的,就是一面之后很快二面,但是我的一面很晚所以二面可能等到明天 
点赞 37
评论 13
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务