海康一面9.13(嵌入式软件开发工程师)

总共半个小时的样子,主要是问了C++ 操作系统 计网的内容;

我简历上没写熟悉C,但前面还是问了不少

1.C/C++有哪些操作字符串的函数?

只想起了strcpy、strncpy、strcat

2.C函数函数调用的过程?用到了哪些栈指针?

(当时没回答上,这里就收集资料拓展一下)

栈地址是由高至低拓展的,和堆相反。

函数调用过程主要包括以下三个阶段( 这里以C/C++为例子,go中并未用到寄存器)

1.函数传参:c/c++中规定了函数参数的压栈顺序是从右至左,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等, 函数的参数分别存到对应的寄存器中(例如edi、esi)

2.函数执行

3.返回值返回, 使用寄存器来保存返回值。

部分常用寄存器

3.动态链接和静态链接的区别

动态链接是只建立一个引用的接口,而真正的代码和数据存放在另外的可执行模块中,在运行时再装入; 而静态链接是把所有的代码和数据都复制到本模块中,运行时就不再需要库了。

4.进程和线程的区别?

进程是资源分配的最小单位,线程是CPU调度的最小单位,系统并没有直接区分,只是把线程当做一个轻量级的进程。

5进程间通信的方式?

管道、信号量、共享内存、socket、消息队列

6.有哪些方法实现多线程的互斥同步?你用过什么实现?

信号量、锁(没说全,还有变量和共享内存也可以)

7.为什么用信号量?信号量和锁的区别是什么?

信号量能控制对临界资源访问的数量、锁不能控制

8.了解TCP和UDP吗?介绍一下TCP

TCP:三次握手、四次挥手、拥塞控制、流量控制、超时重传、

UDP:面向无连接、不保证可靠

9.了解socket吗?介绍一下过程?

客户端:socket、connect

服务端:建立socket、bind、listen、accept,顺便拓展了一下全连接队列和半连接队列

10.如何查询一个主机是否在连接?

一开始这个问法我没能理解,我想的是查询这个是否在tcp连接?想了想说了netstat 可以来查询是否在连接,但面试官说不是,问我知道ping吗?我说知道,他说用ping就能查询,我说ping不是用来判断主机之间是否网络联通吗,为什么能判断主机时间是否有连接,他说他问的是这个意思。

11.ping是什么实现的?ICMP是哪一层协议?TCP呢?

ICMP,网络层协议,TCP是传输层

12.了解哪些设计模式?

单例、工厂、观察者、代理

13.说说这几种设计模式他们的优缺点

看过,但让我说优缺点就感觉很不好说,感觉应该少说两个的-.-

现在重新总结一下优缺点:

单例模式

优点:系统提供了唯一实例, 节约系统资源。

缺点: 扩展略难,单例模式中没有抽象层,且单例的职责过重。

工厂模式:

优点:系统的拓展性很好,只需要关注对象的使用,不需要关注对象的创建,符合开闭原则。

缺点:需要在系统中增加相应的多个类,增大了系统复杂度。

抽象工厂模式:

优点:多了一个产品族的概念,多了一个管理层次。

缺点:增加新的产品等级结构麻烦,需要对原有系统进行较大的修改,甚至需要修改抽象层代码,这显然会带来较大的不便,违背了“开闭原则”。

代理模式:

优点:降低系统耦合度,降低的代码复杂度,如果要增加代理操作,可以仅修改代理代码。

缺点:代理模式会造成系统中类的个数增加, 比不使用代理模式增加了代理类, 系统的复杂度增加

观察者模式:

优点:观察者模式支持广播通信,观察目标会向所有已注册的观察者对象发送通知,简化了一对多系统设计的难度。观察者模式满足“开闭原则”的要求,增加新的具体观察者无须修改原有系统代码,在具体观察者与观察目标之间不存在关联关系的情况下,增加新的观察目标也很方便。

缺点:如果一个观察目标对象有很多直接和间接观察者,将所有的观察者都通知到会花费很多时间。如果在观察者和观察目标之间存在循环依赖,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。

面试官说我前面的可能不太熟悉,但网络部分还掌握的比较好,我说挺久没去用C/C++了,忘了挺多。

然后反问

面试群里说7-14天给结果,感觉应该是凉了。

#海康##海康威视面经#
面试经历总结 文章被收录于专栏

一些面经总结

全部评论
为啥我这个没法收录到面经专栏里面,而且我的专栏都不会显示出来,牛客这个好奇怪。
2 回复 分享
发布于 2023-09-19 19:51 浙江
有兴趣做Android驱动、BSP开发或framework吗?也是嵌入式方向的
点赞 回复 分享
发布于 2023-09-22 10:49 广东
共享内存可以做线程互斥吗
点赞 回复 分享
发布于 2023-09-27 12:23 山东

相关推荐

不愿透露姓名的神秘牛友
10-12 10:48
已编辑
6面5kpi0oc的秋招小丑:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
17 145 评论
分享
牛客网
牛客企业服务