真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決linux使用cp報(bào)錯(cuò)

本篇文章為大家展示了如何解決linux使用cp報(bào)錯(cuò),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)睢寧縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

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

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

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

sys_execve()

  do_execve()

    open_exec()

      deny_write_access()

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

這時(shí)候再有進(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會(huì)發(fā)現(xiàn)inode的i_writecount成員為負(fù)數(shù)了,所以直接返回 -ETXTBSY

上述內(nèi)容就是如何解決linux使用cp報(bào)錯(cuò),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:如何解決linux使用cp報(bào)錯(cuò)
路徑分享:http://weahome.cn/article/ggejje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部