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

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:标准错误输出


http://www.xdnf.cn/news/7571.html

相关文章:

  • uniapp生成的app,关于跟其他设备通信的支持和限制
  • 前端无感登录刷新
  • 《算法笔记》11.7小节——动态规划专题->背包问题 问题 A: 装箱问题
  • 基于springboot的网上学校超市商城系统【附源码】
  • 【git】在Windows上搭建git服务器
  • 简单的re(零基础AI做题)
  • Pydantic数据验证实战指南:让Python应用更健壮与智能
  • 5.20打卡
  • 【C/C++】现代C++线程池:从入门到生产级实现
  • power BI 倒计时+插件HTML Content,实现更新倒计时看板!
  • 去中心化算力池:基于IPFS+智能合约的跨校GPU资源共享平台设计
  • 2.4.2死锁的处理策略-预防死锁
  • 【解决】rpm 包安装成功,但目录不存在问题
  • jsmpeg+java+ffmpeg 调用摄像头RTSP流播放
  • DNS 域名解析服务器
  • 卷java,继承三
  • 【Java高阶面经】3.熔断机制深度优化:从抖动治理到微服务高可用架构实战
  • 从Ntfs!NtfsReadMftRecord函数到Ntfs!NtfsMapStream函数从0x274a到0xc4312800
  • SAR ADC 比较器寄生电容对性能的影响
  • 镜像管理(2)Dockerfile总结
  • 技术问答:PHP、JAVA和Go的垃圾回收机制有哪些区别
  • HarmonyOS5云服务技术分享--云函数创建配置指南
  • 软考软件评测师——黑盒测试测试方法
  • python 判断远程windows系统中某进程号是否还在
  • 电商运营数据分析指南之流量指标
  • lambda架构和kappa架构区别
  • 【Unity网络编程知识】协议生成工具Protobuf
  • 05 接口自动化-框架封装思想建立之httprunner框架(中)
  • Qt 控件发展历程 + 目标(1)
  • <uniapp><vuex><状态管理>在uniapp中,如何使用vuex实现数据共享与传递?