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

主頁 > 知識庫 > 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的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 临漳县| 曲松县| 内丘县| 蒲江县| 高要市| 无为县| 荃湾区| 阿拉善盟| 西昌市| 万全县| 岢岚县| 孟连| 荔波县| 桂平市| 吉木萨尔县| 焦作市| 台中县| 南川市| 葫芦岛市| 祁东县| 瑞昌市| 吉水县| 苗栗市| 刚察县| 泰州市| 全州县| 安塞县| 平利县| 凌海市| 南充市| 凉城县| 乾安县| 浦东新区| 蓝山县| 余江县| 武强县| 镇江市| 始兴县| 星子县| 乌什县| 高密市|