Linux后台C++开发知识点

作者:yurunsun@gmail.com 新浪微博@孙雨润 新浪博客 CSDN博客日期:2013年7月9日

linux后台开发需要熟练掌握哪些技能呢?

1. 内存泄漏

  1. cpu wait% ↑
  2. top: swap memory ↑
  3. kswap进程
  4. valgrid中malloc/free值
  5. 调用mallinfo输出当前所占内存
  6. strace -p

2. 野指针

valgrid中access invalid address

3. 机器负载较高

  1. 内存泄漏:top
  2. 进程太多: vmstat 1
  3. io阻塞:vmstat 1

4. 多线程

  1. 线程参数不能是局部变量
  2. pthread_join或boost::thread::join等于waitpid, 调用者会阻塞
  3. socketfd等资源无法共享
  4. 使用gcc -pthread 或者 -D_REENTERANT来解决全局变量重入问题
  5. 使用_r版本的库函数解决库函数重入问题

    readelf -s /lib/libc-2.17.so | grep _r@
    

    查看所有_r版本函数

  6. 互斥逻辑rcntl, flock, semaphere, mutex, rwlock
  7. 内存原子操作

5. TCP

  1. 状态转移图

    CLOSED, 
    LISTEN, 
    SYN_RCVD, 
    SYN_SENT, 
    ESTABLISHED, 
    FIN_WAIT_1, 
    FIN_WAIT_2, 
    TIME_WAIT
    
  2. 为什么要三步握手
  3. 为什么要有TIME_WAIT

6. coredump

  1. ulimit -c unlimited
  2. gcc -g
  3. gdb

    gdb -c core bin
    (gdb) bt
    (gdb) l
    (gdb) frame 0
    (gdb) p this->m_value
    

7. 智能指针

  1. scoped_ptr
  2. shared_ptr
  3. weak_ptr
  4. enable_shared_from_this
  5. noncopable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值