首页 > 代码库 > [Linux]进程——备忘
[Linux]进程——备忘
1,SIGPIPE信号:
在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE:
TCP/IP四路挥手点击打开链接
2,prctl()函数应用
http://blog.csdn.net/zuokong/article/details/7318154
比如返回当前调用该函数的进程
char threadname[17]; // one more for termination
if (prctl(PR_GET_NAME, (unsigned long)threadname, 0, 0, 0) != 0) {
strcpy(threadname, "<name unknown>");
3,向socket写数据的时候经常会遇到EINTR错误~对此应该忽略即可
#define RETRY_ON_EINTR(ret,cond) \
do { \
ret = (cond); \
} while (ret < 0 && errno == EINTR)
RETRY_ON_EINTR(ret, write(s, &tid, sizeof(unsigned)));
4,自旋锁在单核和多核的区别
1. 在单cpu,不可抢占内核中,自旋锁为空操作。
2. 在单cpu,可抢占内核中,自旋锁实现为“禁止内核抢占”,并不实现“自旋”。
3. 在多cpu,可抢占内核中,自旋锁实现为“禁止内核抢占” + “自旋”。
5,android查看内存的命令procrank命令~
- VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
- RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
- PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
- USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
[Linux]进程——备忘