博客專欄

EEPW首頁(yè) > 博客 > Linux -- system、.(source)、exec的區(qū)別

Linux -- system、.(source)、exec的區(qū)別

發(fā)布人:電子禪石 時(shí)間:2020-02-13 來(lái)源:工程師 發(fā)布文章
一、shell 中的 exec 兩種用法:
1、exec 命令:
    代替shell程序,exec命令在執(zhí)行時(shí)會(huì)把當(dāng)前的shell process關(guān)閉,然后換到后面的命令繼續(xù)執(zhí)行。比如 exec ls,終端執(zhí)行完ls命令后退出。
2、exec 文件重定向:
    可以使用命令 exec ls >> ls.txt 后,可以在當(dāng)前路徑下找到 ls.txt,并且ls.txt文件中的內(nèi)容即為當(dāng)前目錄下的文件的名稱。
————————————————

二、exec與.(source)的異同:
1、exec和.(source)都可以在終端來(lái)執(zhí)行程序或者腳本
2、exec執(zhí)行時(shí)候會(huì)關(guān)閉當(dāng)前shell進(jìn)程,并且fork一個(gè)相同pid的shell進(jìn)程來(lái)執(zhí)行,系統(tǒng)調(diào)用新的exec的process來(lái)替代原來(lái)的進(jìn)程執(zhí)行。沒(méi)有新的進(jìn)程創(chuàng)建,原來(lái)進(jìn)程的代碼段、數(shù)據(jù)段、堆棧都被新的process所代替。
3、.(source)執(zhí)行的時(shí)候是當(dāng)前shell環(huán)境下執(zhí)行,執(zhí)行完成后把狀態(tài)返回給當(dāng)前的shell。

三,system與exec的區(qū)別
1、system()和exec()都可以執(zhí)行進(jìn)程外的命令,system是在原進(jìn)程上開(kāi)辟了一個(gè)新的進(jìn)程,但是exec是用新進(jìn)程(命令)覆蓋了原有的進(jìn)程。
2、system()和exec()都有能產(chǎn)生返回值,system的返回值并不影響原有進(jìn)程,但是exec的返回值影響了原進(jìn)程。

其中一個(gè)應(yīng)用就是 操作gpio 時(shí)候可以使用system 函數(shù)。

99.PNG————————————————

原文鏈接:https://blog.csdn.net/zhemingbuhao/article/details/88032769


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

調(diào)光開(kāi)關(guān)相關(guān)文章:調(diào)光開(kāi)關(guān)原理


關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉
×

Digikey let's do
· 2025年第1期限时报名开启,5月8日截止
· Digikey助力,提供一站式免费器件支持
· 跟大佬一起 【DIY 功率监测与控制系统】