深信服大牛批“C/C++网络安全”方向

先作个简单的自我介绍,整个面试时长36分钟,面试官很nice,面试体验很好。
面试官说不管你擅长什么语言,按照惯例,得先问些C/C++问题;问到的内容有C、网络、OS。

1.int、short占几个字节?
4,2;

2.short往int转换,多出来的字节怎么表示?
高位补符号位,正数补0,符数补1.

3.讲讲字节序,我讲反了
大端(big endian):低地址存放高有效字节
小端(little endian):低字节存放地有效字节

4.C语言中的局部变量和全局变量什么时候存在于内存中?
全部变量一开始就存在,局部变量定义在函数内部,当函数被调用时存在。

5.加了static的局部变量和全局变量怎么理解?
不会

6.C语言中如何保存一个字符串?
我回答的是开辟一个char数组,再利用strncmp(dst, src, n)拷贝到char中,此时char的首地址就指向了字符串。
但是这个太麻烦了,C语言中是直接用 char *strs = "hello world!"即可。

7.网络熟悉哪一块,讲一讲?
我说熟悉TCP/IP协议栈,那我讲讲TCP的通信。
(1)先讲了三次握手、四次挥手的过程;面试官问,你刚刚说的ISN(初始序列号)在通信连接建立了之后有什么用?假如我的ISN是1,我发送了100个字节的数据给对端,那我期待的ack是多少?答101(好像答错了,正确答案应该是102,对吗?)。
(2)TCP如何保证可靠性?
超时重传、确认机制、流量控制(滑动窗口协议)、按序重排、拥塞控制。
面试官补充了一个校验机制。

8.讲讲操作系统里面你最熟悉的部分?
进程管理。
(1)进程是程序运行的一个实例,内核通过PID和进程控制块(PCB)感知和管理进程,包括程序代码、数据和上下文信息;面试官 什么是上下文信息,答CPU寄存器、程序计数器、内存分配、栈等等。
(2)进程切换开销大,所以有了线程。面试官问 什么是线程,balabla...;线程切换和进程切换之间有什么区别? 线程切换不需要切换地址空间;继续问 这个地址空间主要指什么? 主要是内存和在其中打开的文件描述符等数据。
(3)有了线程之后,如果存在多个核,可以实现真正的并行;面试官问 为什么多进程不能实现并行,每个核上安排一个进程不可以吗? 没答上来。

9.有什么想问的吗?
(1)部门业务,技术栈;
主要做云计算和网络安全;技术栈核心是C++,少量python
(2)您对我的面试表现有什么建议吗?什么时候能知道面试结果?
每一轮面试侧重点不一样,我这轮主要是考察基础,其它轮考察实践经验,(就没继续说了...);
我们效率很快,一般来说下午就会有结果。

平时学的Java,所以C语言很多没答好,感觉是凉了,但也希望能有二面啊。
#面经##深信服##C++工程师##校招#
全部评论
楼主你好,请问你是实习、校招还是社招?
点赞 回复
分享
发布于 2020-08-08 14:52
学java怎么想起投c+了,java工作岗位不是挺多的吗
点赞 回复
分享
发布于 2020-08-10 11:29
阅文集团
校招火热招聘中
官网直投
楼主,请问你这个投的是长沙还是深圳,我记得长沙没有搞云计算的啊
点赞 回复
分享
发布于 2020-08-21 00:38

相关推荐

广州金升阳 销售岗 9.5✖️12
点赞 评论 收藏
转发
1 19 评论
分享
牛客网
牛客企业服务