第三次来到这里了,前两次的腾讯实习生面试都是一面就挂了。今天的运气也不怎么好,估计又挂在一面了。闲话少叙,面试题记录如下:
1.自我介绍加介绍项目
答:blablabla....
2.core文件是什么,有什么用?
答:程序崩溃以后,会把最后的栈信息存在core文件里,方便程序员了解程序崩溃前最后的栈信息。
追问:如果程序core了,但没产生core问价,是何原因?
答:没有打开core文件生成的开关。ulimit -c unlimit
追问:不用core文件,程序出了问题产生信号是否知道?
答:当时蒙了,现在回想起来,就是内核向进程发信号嘛。没答出来。
3.共享内存,不使用同步方式,是否可以安全读写?
答:这一题答偏了,不知怎么扯到fork上去了。可以通过循环队列实现,CAS。
4.fork后,子进程保留了父进程的什么?
答:子进程的内存区是父进程的副本,堆栈等都会继承过来,还有打开的文件描述符等。其实还有很多,比如实际用户ID,有效用户ID,当前工作目录,存储映射等等。
5.共享内存除了文件映射还有什么方式?
答:共享内存对象映射。
追问:二者有什么区别?
答:不知道。
6.tcp怎么实现流量控制?
答:对端告知窗口大小。本端传递的数据量小于窗口大小。(更好的说法是告诉对端本地的窗口的大小,对端传递的数据量必须小于该窗口)
追问:怎么告知窗口大小?
答:在ACK的报文里。
7.编程题(没搞出来,诶~)
问:一个超长字符串表示的十进制数(大于2^32),转化为十六进制的字符串?