校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > linux使用cp報錯 Text file busy

linux使用cp報錯 Text file busy

熱門標簽:濟南智能語音電銷機器人加盟 河南語音電銷機器人加盟公司 抖音商家地圖標注入駐店 易聯系統外呼營銷來回呼 江西意向度高的羿智云外呼系統 無錫真人電銷機器人供應商 無錫ai智能語音電銷機器人廠家 如何找電銷機器人 電銷機器人怎么打卡

我第一個想到的是:可能ioctl可以檢查文件。可惜我猜錯了,看了一下cp的源碼,原來如果一個文件正在運行,另一個進程再open以獲得寫權限的話,這個open本身就會失敗,返回-1,errno為ETXTBSY。

那么cp -f 為什么又可以?因為cp -f會先把目標文件(要被覆蓋的文件)刪掉,然后將源文件rename為目標文件名。

從內核代碼看,當運行一個二進制文件時

sys_execve()

  do_execve()

    open_exec()

      deny_write_access()

這里的deny_write_access會把文件對應inode的i_writecount成員減1,通常i_writecount的值就變成-1了(初始為0)

這時候再有進程想以寫模式open:

do_sys_open()

  do_filp_open()

    path_openat()

      do_last()

        nameidata_to_filp()

          __dentry_open()

            __get_file_write_access()

              get_write_access()

get_write_access會發現inode的i_writecount成員為負數了,所以直接返回 -ETXTBSY

標簽:綏化 常德 河源 濱州 江蘇 宿州 保山 亳州

巨人網絡通訊聲明:本文標題《linux使用cp報錯 Text file busy》,本文關鍵詞  linux,使用,報錯,Text,file,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux使用cp報錯 Text file busy》相關的同類信息!
  • 本頁收集關于linux使用cp報錯 Text file busy的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 吴江市| 兴海县| 华坪县| 赣州市| 垦利县| 南充市| 闵行区| 兴义市| 澎湖县| 大石桥市| 易门县| 任丘市| 连南| 商水县| 嵩明县| 安平县| 延吉市| 通辽市| 五峰| 安泽县| 涿州市| 宁城县| 潍坊市| 格尔木市| 石门县| 包头市| 资溪县| 凌海市| 永兴县| 买车| 蒙城县| 阿拉善左旗| 静宁县| 全南县| 始兴县| 余江县| 玉田县| 本溪| 惠州市| 萨迦县| 呼图壁县|