栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux 中期

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux 中期

printf 缓冲区

printf 1.缓存区放慢会直接打印出来 2.缓冲区未满,强制刷新会直接打印出来 3.程序结束,会打印
强制刷新:fflush(stdout) /n

main 中的参数


argc是参数个数 argv是参数内容 envp是环境变量列表

fork 复制进程


main main.c 在I/O设备(硬盘)
./main 运行在内存中

linux中编译文件是ELF格式 windows中编译文件是PE格式

操作系统:管理内存,管理进程,管理文件系统
操作系统通过进程控制块 PCB进行管理进程,进程控制块是进程进行的唯一标识
进程的三个状态:就绪,运行,阻塞

并发和并行

内存管理

代码段是从0x0804 8000

父子进程

fork复制谁谁是父进程 赋值后的进程为子进程
fork失败为-1 fork>0 父进程 =0子进程

子进程会在pid_t pid=fork()执行完的地方继续执行,父进程中执行的所有数据也复制给了子 进程.
每一个命令的父进程都是bush

父子进程中变量的物理地址不一样,&n是逻辑地址,代表的是页面内的偏移量,因为fork把偏移量也复制过去所有一样
&/4k=商(所在的页面) 余(在页面的偏移量) 32位系统下 64位下是8k
写实拷贝,如果使用子进程再赋值页表,不使用共用一个页表

僵死进程

./main.c & 把程序挂在后台执行,执行完子进程后 在父进程完以前输入ps命令

进程后加 僵死进程
子进程先结束,父进程没有获取子进程的退出码
父进程先结束后,子进程变成孤儿进程,系统会为子进程再找一个init新的父进程 pid 1

fork面试考察题目:
6个A如果没有n 那么打印出来是8个A

1个A,当printf里没有n A就不会被强制打印出来,会先存在缓冲区 fork会把它一起复制给子进程,当运行父进程 打印一个A 运行子进程时 A又被打印一边

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881609.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号