- 博客(10)
- 收藏
- 关注
原创 UML 类图学习
聚合和组合的区别聚合在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在组合聚合是聚合的一种特殊情况,成员对象与整体对象之间具有同生共死的关系
2022-07-09 11:24:55 91
原创 简单的netfilter hook函数注册以及内核链表的使用
#include #include #include #include #include #include #include struct fox{ int a; struct list_head list;};struct list_head fox_list;/** * Hook function to be called. * We modify the pac
2017-10-19 22:32:23 474
原创 unix网路编程第一章 之环境搭建
在进行本书的学习之前,我们首先进行环境的搭建下载源代码http://download.csdn.net/detail/ymsdu2004/4906181在当前工作目录下解压cd unpv13e[root@localhost unpv13e]# ./configure[root@localhost unpv13e]# cd lib[root@localhost
2017-07-23 23:15:14 266
原创 守护进程
13.3 编码规则(1)首先要做的是调用umask将文件模式创建屏蔽字设置为一个已知值(2)调用fork,然后使父进程exit。(3)调用setsid创建一个新会话(4)将当前工作目录更改为根目录(5)关闭不再需要的文件描述符(6)某些守护进程打开/dev/null使具有文件描述符0、1、2
2017-07-15 08:05:22 149
原创 12.8线程和信号
在这一节中,有几点比较难以理解int pthead_sigmask第一点:如果信号集中的某个信号在sigwait调用的时候是挂起状态这里的挂起是什么意思应该是所有的线程的将该信号阻塞,并且在调用sigwait 时该信号已经发生,但还没能传递第二点:线程在调用sigwait 之前,必须阻塞那些它在等待的信号,sigwait函数会原子地取消信号集的阻塞状态。在返回之前,si
2017-07-14 20:39:31 255
原创 12.5重入
如果一个函数在相同的时间点可以被多个线程安全调用,就称该函数为线程安全的很多函数并不是线程安全的,因为它们返回的数据放在静态的内存缓冲区中(如果该函数被其他线程调用,该缓冲区会被覆盖)注意线程安全与可重入函数之间的区别可重入函数是指在信号异步发生时,对该函数的执行结果没有影响
2017-07-13 23:18:35 167
原创 关于pthread_exit(void *rval_ptr)使用void指针的问题
在看书的时候想的是为什么不像正常函数那样使用一个全局变量来传递。这是为了通用性,因为我们不知道要返回什么类型的数据
2017-07-13 15:14:56 292
原创 运行程序的存储空间分类
这个问题困扰了我很久,因为总感觉各种书的说法总有点差别,这里,我把我觉得比较好的一种答法。总共分为5类栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。堆区(heap):一般由程序员分配和释放,若程序员不释放,程序节束时可能由操作系统回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表c中有malloc,remalloc 分配的空间。c+
2016-08-26 14:38:02 917
原创 字符串常量
今天我想说一下在c中字符串常量的问题。在这里首先要先说明一下,我们知道,在程序中数值型常量在编译后并不是存在数据段之中,而是直接作为立即数存在程序之中,也就是说,程序编译后,该数值型常量就存在程序之中,当程序执行过程中,并不需要在数据段提取。类似汇编中的Mov a,#12 而字符串常量就不同了。当我们在程序中使用字符串常量时,它是被存在常量区,常量区的数据是不能更改的,而且它是有
2016-05-26 23:47:10 405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人