新闻  |   论坛  |   博客  |   在线研讨会
Linux -- system、.(source)、exec的区别
电子禅石 | 2020-02-13 16:34:59    阅读:1635   发布文章

一、shell 中的 exec 两种用法:
1、exec 命令:
    代替shell程序,exec命令在执行时会把当前的shell process关闭,然后换到后面的命令继续执行。比如 exec ls,终端执行完ls命令后退出。
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 函数。

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

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


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客