好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > linux使用cp報(bào)錯 Text file busy

linux使用cp報(bào)錯 Text file busy

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

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

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

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

sys_execve()

  do_execve()

    open_exec()

      deny_write_access()

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

這時候再有進(jìn)程想以寫模式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成員為負(fù)數(shù)了,所以直接返回 -ETXTBSY

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux使用cp報(bào)錯 Text file busy》,本文關(guān)鍵詞  linux,使用,報(bào)錯,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報(bào)錯 Text file busy》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux使用cp報(bào)錯 Text file busy的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章