小鱼儿游啊游啊。。。。
全部博文(338)
发布时间:2013-01-03 15:40:35
代码1:void GetMemory(char *p){ p = (char*)malloc(100);}int main(int argc, char *argv[]){ char *str = NULL; GetMemory(str); strcpy(str, "Hello"); return 0;}str没有得到分配内存的地址值。 内存空间状态:首先申请了四个字节的栈空间,存放str指针,此时str的值为0,存放str的这块内存的地址值为0x0012ff7c。调用函数 GetMemory,指针P入栈,也分配了四个字节的栈空间,P被赋str的值即此时P的值也为0,存放指针P的内存......【阅读全文】
发布时间:2013-01-02 15:14:37
创建一个共享库 创建共享库的目标文件和一般的目标文件有所不同,在编译时要加 -fPIC。-f后面跟一些编译选项,PIC是其中一种,表示生成位置无关代码(Position Independent Code)例如: gcc -c -fPIC stack/stack.c stack/push.c stack/pop.c stack/is_empty.c 生成共享库,如: gcc -shared -o libstack.so stack.o push.o pop.o is_empty.o ......【阅读全文】
发布时间:2013-01-02 15:06:32
在详细讲解运行进程的组织及调度的一些列课题前,先把Linux内核中如何组织非运行状态进程的那些机制梳理一遍。 运行队列链表rq把处于TASK_RUNNING状态的所有进程组织在一起。当要把其他状态的进程分组时,不同的状态要求不同的处理,Linux选择了下列方式之一: (1) 没有为处于TASK_STOPPED、EXIT_ZOMBIE 或 EXIT_DEAD状态的进程建立专门的链表。由于处于暂停、僵死、死亡状态进程的访问比较简单,或者通过PID,或者通过特定父进程的子进程链表,所以不必对这三种状态进程分组。 (2) 对于处于TASK_INTERRUPTIBLE或TASK......【阅读全文】