摘要:
结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排 阅读全文
摘要:
装饰者设计模式的步骤: 1. 在装饰类的内部维护一个被装饰类的引用。 2. 让装饰类有一个共同的父类或者是父接口。 阅读全文
摘要:
传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的通道.linux系统的套接字机制支持低层协议发送和接受带外数据.但是TCP协议 阅读全文
摘要:
// Upon successful completion, pthread_atfork() shall return a value of zero; otherwise, an error number shall be returned to indicate the error. // @ 阅读全文
摘要:
先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 thread ID 切换当前调试的线程为指定ID的线程。 break thread_test.c:123 阅读全文
摘要:
v_data.push_back(pdata);这句只是把指针pdata拷贝到 vector当中的一个指针p1当中 注意是拷贝也就是说当前pdata和p1指向同一个东西,p1在vector中。并不是将结构体放入vector,这点需要明确。这时如果你delete pdata 也就是释放了 pdata 阅读全文
摘要:
1. 每个线程都有自己的信号屏蔽字 2. 每个线程都对同一信号都共享一个信号处理函数。 3. 主线程设置了pthread_sigmask后,子线程将复制一份设置好的信号屏蔽字(之后可以更改)。 然后我们来看下线程和进程间的比较 子进程继承父进程的属性: 子线程继承主线程的属性: 实际用户ID,实际组 阅读全文
摘要:
当以一个普通用户去执行 设置-用户ID 为root的程序时,如果再次用了system函数时,被system函数所执行的那个程序具有 有效-用户ID 为root的风险(虽然真实用户还是普通用户),这也是一个漏洞。 设置用户ID 程序绝对不应该调用system函数。 因为fork出来的子进程继承了父进程 阅读全文
摘要:
在内存加载.class文件后,会自动创建一个对象,用于保存class的信息,与我们程序员手工创建的对象不一样. 阅读全文