分类: C/C++
2013-05-15 11:24:16
cpu 内存 硬盘 等等与系统性能调试相关的命令,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令
正则表达式: awk sed
可执行文件格式
windows: pe
Linux: elf
min(#pragma pack()指定的数,这个数据成员的自身长度)
min(#pragma pack指定的数值和结构(或联合)最大数据成员长度中)
4, linux进程间通信:
共享内存,消息队列,管道
5,共享内存 最大 linux 32M,
先创建共享内存内核对象, 然后把内核对象映射到进程空间。
epoll, select区别
1,连接数, select win32下64, x86 linux下1024, 可以重新宏定义fd_size来改变连接数
2,select是同步的,轮询的,随着连接数的增长,效率变低;linux epoll 和windows iocp都是高效的,不会随着
连接数增长而导致效率大幅度下降。
3, 多线程select,如果同一时刻有一个网络事件,则会发生select冲突,即所有线程都会返回(accept惊群);
多线程epoll wait, 如果同一时刻有一个网络事件,只会有一个线程返回,即领导者追随者模式
C语言中的宏定义和内联的区别
1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。
2、内联函数可以调试,而宏定义是不可以调试的。
内联函数与宏本质上是两个不同的概念如果程序编写者对于既要求快速,又要求可读的情况下,则应该将函数冠以inline。
3.宏的展开是预处理器进行的 但是内联函数的展开是编译器来进行的