linux中可执行文件为什么不能拷贝覆盖

news2024/9/24 5:22:41

对于一个普通的文件,假如有两个文件,分别是file和file1,我们使用 cp file1 file的方式使用file1的内容来覆盖file的内容,这样是可以的。

但是对于可执行文件来说,当这个文件在执行的时候,是不能通过cp的方式来覆盖的,为什么呢 ?

如下的代码,使用 gcc hello.c -o hello, gcc hello.c -o hello1分别编译出两个可执行文件hello和hello1,然后执行hello,再执行cp hello1 hello,这样会报错。如果可执行文件没有被执行,那么是cp命令是可以执行成功的。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main() {
  int i = 0;
  while (i < 3000) {
    sleep(1);
    i++;
  }
  return 0;
}

可执行文件被执行的时候,通过execve系统调用来进行。在execve中,会调用到 deny_write_access()来禁止写权限,而使用cp命令,会打开文件进行写,所以操作失败。

static struct file *do_open_execat(int fd, struct filename *name, int flags)
{
    ...
	err = deny_write_access(file);
    ...
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1906282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-23-零基础自学python open()和replace()函数运用

学习内容&#xff1a;《python编程&#xff1a;从入门到实践》第二版练习10-2 知识点&#xff1a; 打开文件&#xff0c;replace()替换文件内容&#xff0c;open(), 练习内容&#xff1a; 练习10-2:C语言学习笔记 可使用方法replace()将字符串中的特定单词都替换为另一个单…

Android进入Recovery模式 显示无命令 / no command

问题&#xff1a; 进入 recovery 模式后就显示no command&#xff0c;倒地机器人 解决&#xff1a; 在此界面按住电源键不放&#xff0c;再按一下音量

LeetCode刷题之HOT100之寻找重复数

2024 7/8 热热热热热热&#xff0c;昨晚空调开定时&#xff0c;4点被热醒&#xff0c;全身发烫&#xff0c;后背湿的透透的&#xff0c;胶粘&#xff0c;起来又开了一小时&#xff0c;早上继续被二次热醒。看来还是得整晚开。做题啦&#xff01; 1、题目描述 2、算法分析 寻找…

扩散模型笔记2

Ref:扩散模型的原理及实现&#xff08;Pytorch&#xff09; 在扩散模型中&#xff0c;每一步添加的噪声并不是完全一样的。具体来说&#xff0c;噪声的添加方式和量在每一步是根据特定的规则或公式变化的。这里我们详细解释每一步添加噪声的过程。 正向过程中的噪声添加&…

flask、fastapi在服务器制作接口携参访问返回参数

flask创建接口&#xff1a; 一、安装python 官网下载Download Python | Python.org 二、安装flask 在选择的文件夹路径cmd调用bash安装 pip install Flask三、创建flask应用 # app.py from flask import Flask, request, jsonify app Flask(__name__) app.route(/ech…

【国产开源可视化引擎Meta2d.js】标尺

画布顶部和左边的坐标标尺 在线体验&#xff1a; 乐吾乐2D可视化 示例&#xff1a; // 设置默认缺省标尺属性 meta2d.store.options.rule true; // 开启 meta2d.store.options.ruleColor eeeeee; // 标尺颜色&#xff0c; 可缺省// 设置单个图纸的标尺属性 //方式1 meta2d.…

Kafka(二)Producer第一篇

一&#xff0c;Client开发 生产逻辑需要具备以下几个 步骤&#xff1a; &#xff08;1&#xff09;配置生产者客户端参数及创建相应的生产者实例。 &#xff08;2&#xff09;构建待发送的消息。 &#xff08;3&#xff09;发送消息。 &#xff08;4&#xff09;关闭生产者实例…

材料科学SCI期刊,IF=6+,2个月录用,审稿速度非常快

一、期刊名称 Journal of Materials Research and Technology 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;材料科学 影响因子&#xff1a;6.2 中科院分区&#xff1a;2区 三、期刊简介 《材料研究与技术杂志》为发表与材料加工、性能和性能相关的理论…

蚓链实践告诉你“企业确保达成数字化营销效果的方法”

在如今这个数字化盛行的时代&#xff0c;企业想在激烈的市场竞争里崭露头角&#xff0c;确保数字营销效果那可是至关重要&#xff01;今天就来给大家聊聊实现这一目标的基本条件&#xff0c;来自蚓链数字化营销系统的广大用户体验总结。 一、精准的目标定位 企业一定要清楚地知…

Java 操作 Redis客户端

目录 1.渐进式遍历 2.Java 操作 Redis 客户端 2.1 引入依赖 2.2 配置端口转发 2.3 连接Redis Server 3.基础操作 3.1 set 和 get 3.2 exists 和 del 3.3 keys 3.4 expire 和 ttl 3.5 type 4.字符串操作 4.1 mget 和 mset 4.2 append 4.3 getrange 和 setrange 4.4 incr 和 d…

如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你知道吗,根据Google 的一项研究,如果网站加载时间超过 3 秒,53% 的移动用户会离开该网站? 性能优化是一个经常讨论的话题,但很多开发人员并不关心提高应用的速度。 在前端开发中,优化包大小和加载时间对于提升用户体…

数据结构--二叉树相关题2(OJ)

1.比较对称二叉树&#xff08;镜像二叉树&#xff09; 二叉树相关题1中第二题的变形题。先去看1哦&#xff01; 左子树和右子树比较 bool _isSymmetric(struct TreeNode* p, struct TreeNode* q) {if (p NULL && q NULL)return true;//如果两个都为空则是相等的if …

【Arduino】XIAOFEIYU(TM)实验ESP32使用霍尔传感器(图文)

霍尔传感器是一种可以测量磁力变化的传感器&#xff0c;今天XIAOFEIYU就来测试一下ESP32使用霍尔传感器。 霍尔传感器&#xff1a;正负极加一个数据接口。 将传感器与ESP32进行电路连接&#xff1a; 编写程序&#xff1a; #define SIGNAL_PIN 33int value 0; // 存储传感…

【Spring Boot】关系映射开发(二):一对多映射

《JPA 从入门到精通》系列包含以下文章&#xff1a; Java 持久层 API&#xff1a;JPA认识 JPA 的接口JPA 的查询方式基于 JPA 开发的文章管理系统&#xff08;CRUD&#xff09;关系映射开发&#xff08;一&#xff09;&#xff1a;一对一映射关系映射开发&#xff08;二&#…

如何在Spring Boot中实现分布式任务调度?

文章目录 引言一、分布式任务调度的基本原理二、Spring Boot与分布式任务调度1. 使用Quartz实现分布式任务调度2. 使用Elastic-Job实现分布式任务调度 三、常见问题与解决方案结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;…

食品行业制氮机的应用范围解析

在食品行业中&#xff0c;保障食品的品质和安全性是每一个企业所追求的核心目标。制氮机作为一种重要的辅助设备&#xff0c;其在食品行业中的作用不容忽视。 一、保障食品质量与安全性 制氮机通过物理方法从空气中分离出高纯度氮气&#xff0c;为食品提供了一个无氧环境。这一…

C++模板元编程(二)——完美转发

完美转发指的是函数模板可以将自己的参数“完美”地转发给内部调用的其它函数。所谓完美&#xff0c;即不仅能准确地转发参数的值&#xff0c;还能保证被转发参数的左、右值属性不变。 文章目录 场景旧的方法新的方法内部实现参考文献 场景 思考下面的代码&#xff1a; templ…

哈喽GPT-4o,程序员如何通过GPT-4o提高工作效率

目录 一、编写代码Prompt&#xff1a;请用Java语言编写一个二分查找的样例 二、修正代码错误、代码优化Prompt&#xff1a;我们上传一张华为OD算法题的题目描述&#xff0c;再给它我的Java解题代码&#xff0c;问问它有什么问题&#xff1f; 三、解读代码功能、代码翻译Prompt&…

Qt 网络编程 网络信息获取操作

学习目标&#xff1a;网络信息获取操作 前置环境 运行环境:qt creator 4.12 学习内容 一、Qt 网络编程基础 Qt 直接提供了网络编程模块,包括基于 TCP/IP 的客户端和服务器相关类,如 QTcpSocket/QTcpServer 和 QUdpSocket,以及实现 HTTP、FTP 等协议的高级类,如 QNetworkRe…

flask缓存、信号的使用

【 一 】flask-ache ​ 它为 Flask 应用程序提供了缓存支持。缓存是 Web 应用程序中非常常见的做法&#xff0c;用于存储频繁访问但不太可能经常更改的数据&#xff0c;以减少对数据库或其他慢速存储系统的访问&#xff0c;从而提高应用程序的性能和响应速度。 ​ Flask-Cach…