Skip to content

Latest commit

 

History

History
44 lines (27 loc) · 1.53 KB

天空卫士 面试题.org

File metadata and controls

44 lines (27 loc) · 1.53 KB

天空卫士 面试题

岗位描述

../images/天空卫士.PNG

面试题

  • 如何判断一个单链表有环,设置2个指针,一个快一个满
  • 二叉树先序遍历、中序遍历、后续遍历,根据2个确定一个
  • 线程互斥锁、条件锁的生产者消费者
  • gdb 调试全面掌握
  • 排序
  • 父子进程之间的最优通信方式
  • 哈希
  • pthread_self() pthread_…
  • epoll ET LT
  • 父进程如何获取退出状态
  • 写个 Deamon
  • EAGAIN EINTR send recv read write
  • 惊群
  • errno 为全局变量,为什么多线程不用加锁 在支持线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部 errno 以避免一个线程干扰另一个线程。 对于 errno 应当知道两条规则。
    1. 如果没有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。
    2. 任一函数都不会将 errno 值设置为 0,在 <errno.h> 中定义的所有常量都不为 0。
  • __VA_ARGS__ 是一个可变参数的宏,这个可宏是新的C99规范中新增的,目前似乎 gcc 和 VC6.0 之后的都支持(VC6.0 的编译器不支持)。宏前面加上 ## 的作用在于,当可变参数的个数为 0 时,这里的 ## 起到把前面多余的 “,” 去掉的作用。
  • __FILE__ 宏在预编译时会替换成当前的源文件名
  • __LINE__ 宏在预编译时会替换成当前的行号
  • __FUNCTION__ 宏在预编译时会替换成当前的函数名称
  • recv read 返回0