易错 只有已退出(Exited)的进程才能被回收 带合并的 malloc 已初始化的变量保存在 ELF 二进制文件中的 进程没有办法处理 SIGKILL 信号 int *(*f[3])(); 的意思是 an array of pointers to functions that return pointers to int User stack 不在 ELF 中 大部分概念在例题讲解中都有介绍,这里就不专门列出了。 { 各有一份,所以子进程加 1 变成 18,父进程减 1 变成 16,具体的流程已经在注释中标出。 Child: 18 Parent: 16 如果程序改为下面的片段,输出是否会变化? { { my_child 中的 global_x 213 动态内存分配 pointers[i] = malloc(4); free(pointers[i]); pointers[i] = malloc(56); 假设 malloc 是用 implicit list 实现的,header 为 8 字节,没有 footer,每个 block 都需要跟 8 字节对齐(也就是大小是 8 的倍数)。使用 first-fit 策略,如果没有足够的空间,就会调用 sbrk 上面代码执行完毕, sbrk 函数一共申请了多少空间? $$(8+8)\times 32 + (8+56)\times 32 = 2560 \;
Read full article from 【读厚 CSAPP】知识点复习 | 小土刀
No comments:
Post a Comment