Exec 之后文件描述特点|学习笔记

简介: 快速学习 Exec 之后文件描述特点

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频Exec 之后文件描述特点】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11033


Exec 之后文件描述特点

 

内容介绍;

一、exec 前后文件描述符的特点

二、设置 close_on_exec 标志位的方法

 

 

一、exec 前后文件描述符的特点

每一个进程都会有文件描述符的表。exec 会将当前的进程替换,文件描述符中的表是否可用?

close_on_exec 标志决定了文件描述符在执行exec后文件描述符是否可用。

文件描述符的 close_on_exec 标志默认是关闭的,即文件描述符在执行exec后文件描述符是可用的.

例如:

在程序中打开文件为 test.txt

int main()

{

Int fd1;

fd1 = open(“test.txt”,O_CREAT|RDWR,S_IRWXU);//3

excal(“aaa”,”aaa”,NULL);//3默认代表test.txt

}

若没有设置 close_on_exec 标志位,进程中打开的文件描述符,及其相关的设置在exec 后不变,可供新启动的程序使用。

将 close_on_exec 打开则不可用3。

 

二、设置 close_on_exec 标志位的方法

int flags;//定义变量

flags = fcntl(fd, F_GETFD);//获得标志

flags |= FD_CLOEXEC;//打开标志位

flags &= ~FD_CLOEXEC;//关闭标志位

打开标志位与关闭标志位任选其一,如果设置为关闭标志位,exec 之后,表中文件描述符依然可用。

如果设置打开标志位,exec 之后的程序不能用于原来的进程。

fcntl(fd, F_SETFD,flags);//设置标志

相关文章
|
网络协议 Linux 网络架构
Linux三种网络模式 | 仅主机、桥接、NAT
Linux三种网络模式 | 仅主机、桥接、NAT
2262 0
|
安全 算法 编译器
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
402 2
|
存储 IDE Java
Flink---12、状态后端(HashMapStateBackend/RocksDB)、如何选择正确的状态后端
Flink---12、状态后端(HashMapStateBackend/RocksDB)、如何选择正确的状态后端
|
Linux 开发工具
centos7 发送邮件实测
centos7 发送邮件实测
230 0
|
缓存 负载均衡 网络协议
Boost UDP Transaction Performance
Boost UDP Transaction Performance
206 4
|
机器学习/深度学习 关系型数据库 Shell
老程序员分享:Linux之pushd、popd和dirs的使用讲解,比cd
老程序员分享:Linux之pushd、popd和dirs的使用讲解,比cd
337 1
|
网络协议 安全 Linux
|
存储 安全 Python
如何在Python中实现一个单例模式,确保在多线程环境中也是安全的?
【2月更文挑战第5天】【2月更文挑战第11篇】如何在Python中实现一个单例模式,确保在多线程环境中也是安全的?
564 1
|
C++
VS Code 如何设置大小写转换快捷键
VS Code 如何设置大小写转换快捷键
1943 0
VS Code 如何设置大小写转换快捷键
|
监控 Linux 定位技术
Linux应用开发基础知识——串口应用编程(十一)
Linux应用开发基础知识——串口应用编程(十一)
601 0
Linux应用开发基础知识——串口应用编程(十一)