linux中可執行文件為什么不能拷貝覆蓋

對于一個普通的文件,假如有兩個文件,分別是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.pswp.cn/web/41234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41234.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

將 KNX 接入 Home Assistant 之四 功能測試

一&#xff1a;測試標準的KNX網關功能 測試軟件識別是否正常 可以看到再ETS6和ETS5上都能正常識別 測試數據收發 可以正常發送數據 測試配置設備參數&#xff08;下載配置&#xff09; 可以看出&#xff0c;在ETS5上是可以正常下載參數的 但是 ETS6下載是失敗的&#xff…

k8s-第十一節-Job和CronJob

Job Kubernetes jobs主要是針對短時和批量的工作負載。它是為了結束而運行的&#xff0c;而不是像deployment、replicasets、replication controllers和DaemonSets等其他對象那樣持續運行。 Kubernetes Jobs會一直運行到Job中指定的任務完成。也就是說&#xff0c;如果pods給…

Pandas 學習筆記(四)--CSV文件

CSV文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗號分隔值&#xff0c;有時也稱為字符分隔值&#xff0c;因為分隔字符也可以不是逗號&#xff09;&#xff0c;其文件以純文本形式存儲表格數據&#xff08;數字和文本&#xff09;。 讀取與寫入 讀取csv文件 i…

可視化作品集(08):能源電力領域

能源電力領域的可視化大屏&#xff0c;有著巨大的用武之地&#xff0c;不要小看它。 監控能源生產和消耗情況&#xff1a; 通過可視化大屏&#xff0c;可以實時監控能源生產和消耗情況&#xff0c;包括發電量、能源供應情況、能源消耗情況等&#xff0c;幫助管理者及時了解能…

C語言 | Leetcode C語言題解之第218題天際線問題

題目&#xff1a; 題解&#xff1a; struct pair {int first, second; };struct Heap {struct pair* heap;int heapSize;bool (*cmp)(struct pair*, struct pair*); };void init(struct Heap* obj, int n, bool (*cmp)(struct pair*, struct pair*)) {obj->heap malloc(si…

調制信號識別系列 (一):基準模型

調制信號識別系列 (一)&#xff1a;基準模型 說明&#xff1a;本文包含對CNN和CNNLSTM基準模型的復現&#xff0c;模型架構參考下述兩篇文章 文章目錄 調制信號識別系列 (一)&#xff1a;基準模型一、論文1、DL-PR: Generalized automatic modulation classification method b…

軟件架構之操作系統

第 2 章操作系統 本章主要介紹操作系統的基本概念及其形成、發展歷史和主要類型&#xff0c;并指出操作系統的5 大管理功能。掌握操作系統原理的關鍵在于深入理解“一個觀點、兩條線索”。一個觀點是以資源管理的觀點來定義操作系統&#xff1b;兩條線索是指操作系統如何管理計…

【計算機畢業設計】020基于weixin小程序訂餐系統

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

C語言獲取當前時間

一共有兩段代碼&#xff0c;一個是獲取當前時間&#xff0c;一個是獲取到現在的總毫秒數 求關注&#x1f604; 互粉必回 獲取當前時間 #include <stdio.h> #include <time.h> int main() { time_t rawtime; struct tm * timeinfo; char buffer[20]; // 獲取當前…

Linux內核編譯與調試menuos-linux-3.18.6-在ubuntu20.04環境

1 具體操作 下載 linux-3.18.6內核 wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.6.tar.xz解壓進入linux-3.18.6文件夾 tar -xvf linux-3.18.6.tar.xz cd linux-3.18.6/編譯 #make x86_64_defconfig # 為x86_64生成配置 #make alldefconfig make i3…

每天一個數據分析題(四百零十)- 主成分

實際應用中&#xff0c;關于主成分數量K的取值&#xff0c;下列說法錯誤的是&#xff08; &#xff09; A. 可以基于碎石圖進行判斷 B. 特征根從大到小排序&#xff0c;通常要求前 K 個特征根都大于 1 C. 通常要求 K 個主成分的累積方差比超過 80% D. 各個主成分之間的方向…

什么是區塊鏈的“智能合約”

區塊鏈的“智能合約”是一種存儲在區塊鏈上的計算機協議&#xff0c;它能夠自動執行合約條款&#xff0c;并在滿足預設條件時自動執行相關操作。智能合約通過編程語言&#xff08;如Solidity&#xff09;編寫&#xff0c;可以在去中心化的環境中運行&#xff0c;無需人工干預。…

spdlog一個非常好用的C++日志庫(七): 源碼分析之異常類spdlog_ex

目錄 1.自定義異常類spdlog_ex 1.1.通用異常 1.2.系統調用異常 1.3.what()函數 2.異常的使用 2.1.拋出異常 2.2.控制異常使用 1.自定義異常類spdlog_ex 標準庫異常類&#xff08;std::exception&#xff09;系列&#xff0c;能滿足大多數使用異常的場景&#xff0c;但對…

100359.統計X和Y頻數相等的子矩陣數量

1.題目描述 給你一個二維字符矩陣 grid&#xff0c;其中 grid[i][j] 可能是 X、Y 或 .&#xff0c;返回滿足以下條件的子矩陣數量&#xff1a; 包含 grid[0][0]X 和 Y 的頻數相等。至少包含一個 X。 示例 1&#xff1a; 輸入&#xff1a; grid [["X","Y",…

Avalonia中的樣式

文章目錄 前言樣式定義代碼切換樣式樣式主題前言 Avalonia的樣式是Styles,與WPF類似。用于在控件之間共享屬性設置用于在控件之間共享屬性設置,樣式由 Selector和屬性組成。 樣式定義 下面定義一個最簡單的樣式 <Window.Styles><Style Selector="TextBlock…

雙 Token 無感刷新機制實現

?作者簡介&#xff1a;熱愛Java后端開發的一名學習者&#xff0c;大家可以跟我一起討論各種問題喔。 &#x1f34e;個人主頁&#xff1a;Hhzzy99 &#x1f34a;個人信條&#xff1a;堅持就是勝利&#xff01; &#x1f49e;當前專欄&#xff1a;項目實踐 &#x1f96d;本文內容…

微信小程序性能與體驗優化

1. 合理的設置可點擊元素的響應區域大小&#xff1b; 比較常見的是頁面的點擊按鈕太小&#xff0c;用戶點擊不到按鈕&#xff0c;這樣用戶體驗很不好。 2. 避免渲染頁面耗時過長&#xff1b; 當頁面渲染時間過長的話&#xff0c;會讓用戶感覺非常卡頓&#xff0c;當出現這種…

密室逃脫——收集版修改測試

一、原版修改 1、導入資源 Unity Learn | 3D Beginner: Complete Project | URP 2、設置Scene 刪除SampleScene&#xff0c;打開UnityTechnologies-3DBeginnerComplete下的MainScene 3、降低音量 (1) 打開Hierarchy面板上的Audio降低音量 (2) 打開Prefabs文件夾&#xf…

lnmp php7 安裝ssh2擴展

安裝ssh2擴展前必須安裝libssh2包 下載地址: wget http://www.libssh2.org/download/libssh2-1.11.0.tar.gzwget http://pecl.php.net/get/ssh2-1.4.tgz &#xff08;這里要換成最新的版本&#xff09; 先安裝 libssh2 再安裝 SSH2: tar -zxvf libssh2-1.11.0.tar.gzcd libss…

若依框架(RuoYi)中實現部門及子部門用戶查詢的SQL邏輯解析

前言 在基于若依框架&#xff08;RuoYi&#xff09;的項目開發中&#xff0c;經常會遇到需要根據部門ID查詢其下屬所有用戶的需求&#xff0c;包括直接隸屬于該部門的用戶以及屬于其子部門的所有用戶。這一需求在組織架構管理、權限分配等場景中尤為常見。本文將深入解析一段典…