濮阳杆衣贸易有限公司

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

linux使用cp報錯 Text file busy

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

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

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

從內(nèi)核代碼看,當(dāng)運行一個二進制文件時

sys_execve()

  do_execve()

    open_exec()

      deny_write_access()

這里的deny_write_access會把文件對應(yīng)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會發(fā)現(xiàn)inode的i_writecount成員為負數(shù)了,所以直接返回 -ETXTBSY

標(biāo)簽:綏化 常德 河源 濱州 江蘇 宿州 保山 亳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux使用cp報錯 Text file busy》,本文關(guān)鍵詞  linux,使用,報錯,Text,file,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux使用cp報錯 Text file busy》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux使用cp報錯 Text file busy的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    略阳县| 樟树市| 兴安县| 霍林郭勒市| 大荔县| 长岭县| 和林格尔县| 天门市| 阿拉善盟| 凤凰县| 东阿县| 连平县| 专栏| 天门市| 金山区| 梁平县| 富宁县| 台南县| 运城市| 浙江省| 汕头市| 东乡| 白城市| 丰顺县| 平昌县| 永德县| 额敏县| 五家渠市| 朝阳市| 广宗县| 淮安市| 玉屏| 柳林县| 剑川县| 大荔县| 禹城市| 化德县| 中卫市| 南丰县| 都匀市| 平乡县|