当前位置: 首页 > news >正文

Linux僵死进程以及文件操作

僵死进程

僵死进程产生的原因:

当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程。

如何处理僵死进程:

(1)父进程先结束(子进程会变成孤儿进程,孤儿进程会被收养(红帽子是init(pid==1)手痒孤儿进程,Ubuntu是操作系统指定了一个进程))

(2)父进程调用wait()方法获取子进程的退出码

本质都是调用了wait()

僵死进程的坏处:会拜拜消耗内存;

总结 如何避免僵死进程:

(1)父进程先结束;

(2)父进程调用wait()方法获取子进程的退出码;

Linux操作文件的底层系统调用

C语言操作文件的几个库函数:fopen,fread,fwrite,fclose

系统调用:open,read,write,close;

系统调用方法实现在内核中;(陷入内核,切换到内核)

(1)open的介绍:

open重载:两个参数用于打开一个已经存在的文件;三个参数的用于新建一个文件,并设置访问权限;

pathname:文件的路径和名称

flags:文件的打开方式

mode:文件的权限,如“0600”;

open函数返回一个文件描述符,没打开一个文件,可以获得一个文件描述符。文件描述符是整型,失败返回一个-1,成功返回一个大于等于0的值;0,1,2是默认打开的;

0:标准输入

1:标准输出

2:标准错误输出

(2)write函数的介绍

fd:对应打开的文件描述符

buf:写入的文件内容

count:要写入多少字节

返回值:实际写入的字节数

(3)read:

fd:对应打开的文件描述符

buf:把文件内容读取到一块空间buf中;

count:期望读取的字节数

返回值:返回实际读取了的字节数

(4)close的介绍

关闭文件描述符;

(5)文件描述符:

文件打开后,内核会给文件一个编号

0:标准输入

1:标准输出

2:标准错误输出


相关文章:

  • LW-CTrans:一种用于三维医学图像分割的轻量级CNN与Transformer混合网络|文献速递-深度学习医疗AI最新文献
  • RFID技术在半导体晶圆卡塞盒中的应用方案
  • 计算机可以深度结合、并且很有发展空间的领域
  • 机器学习 day05
  • Git客户端安装、操作
  • Vue3 中使用 provide/inject 实现跨层级组件传值失败的原因及解决方案
  • Vue之入门(Vue是什么以及Vue工作原理)
  • 数据要素如何重构人力资本升级
  • 消息传递--树形dp--50?!
  • windows/linux 模拟鼠标键盘输入
  • 创建型:建造者模式
  • 文件操作和IO—初识文件
  • leetcode hot100:三、解题思路大全:哈希(两数之和、字母异位词分组、最长连续序列)、双指针(移动零、盛最多水的容器、三数之和、接雨水)
  • 《C 语言 sizeof 与 strlen 深度对比:原理、差异与实战陷阱》
  • COMSOL软件入门
  • 爱普生Epson PX-S887打印机信息
  • 不同企业数字化转型补贴差异解析:政策导向下的分层激励模式
  • 从零开始的嵌入式学习day24
  • vmware虚拟机中安装win11系统
  • 开疆智能Profinet转RS485网关连接温度送变器配置案例
  • 斗鱼一季度直播收入降近三成,语音社交服务推高广告等收入,称将持续打击涉赌行为
  • 我国成功发射中星3B卫星
  • 越秀地产约41.49亿元出售北京海淀功德寺项目公司65%股权,此前已质押给华润置地
  • 讲述“外国货币上的中国故事”,《世界钱币上的中国印记》主题书刊出版发布
  • 安徽凤阳县明中都鼓楼楼宇顶部瓦片部分脱落,无人员伤亡
  • 中美贸易代表会谈后是否已确定下一次会谈?外交部回应