Linux -- system、.(source)、exec的區別
一、shell 中的 exec 兩種用法:
1、exec 命令:
代替shell程序,exec命令在執行時會把當前的shell process關閉,然后換到后面的命令繼續執行。比如 exec ls,終端執行完ls命令后退出。
2、exec 文件重定向:
2、exec 文件重定向:
可以使用命令 exec ls >> ls.txt 后,可以在當前路徑下找到 ls.txt,并且ls.txt文件中的內容即為當前目錄下的文件的名稱。
————————————————
————————————————
二、exec與.(source)的異同:
1、exec和.(source)都可以在終端來執行程序或者腳本
2、exec執行時候會關閉當前shell進程,并且fork一個相同pid的shell進程來執行,系統調用新的exec的process來替代原來的進程執行。沒有新的進程創建,原來進程的代碼段、數據段、堆棧都被新的process所代替。
3、.(source)執行的時候是當前shell環境下執行,執行完成后把狀態返回給當前的shell。
三,system與exec的區別
1、system()和exec()都可以執行進程外的命令,system是在原進程上開辟了一個新的進程,但是exec是用新進程(命令)覆蓋了原有的進程。
2、system()和exec()都有能產生返回值,system的返回值并不影響原有進程,但是exec的返回值影響了原進程。
其中一個應用就是 操作gpio 時候可以使用system 函數。
————————————————
原文鏈接:https://blog.csdn.net/zhemingbuhao/article/details/88032769
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
調光開關相關文章:調光開關原理