首页 > 系统相关 >linux c --- 创建子进程 system() 与 exec() 的区别

linux c --- 创建子进程 system() 与 exec() 的区别

时间:2024-11-14 19:43:46浏览次数:1  
标签:函数 exec system --- 参数 进程 执行

功能差异:

  • system()函数的主要功能是执行一个系统命令,这个命令由用户通过命令行参数传递给system()函数。system()函数会创建一个新的进程来执行这个命令,并等待这个进程执行完毕后才返回。因此,system()函数主要用于执行简单的、可以通过命令行传递参数的系统命令。
  • exec()函数则是一组函数的总称,它们提供了在进程中执行其他程序的能力。这些函数会替换当前进程的映像,也就是说,当exec()函数执行完毕后,原来的进程就不复存在了,而是变成了新的程序的进程。因此,exec()函数主要用于执行复杂的、需要替换当前进程映像的程序。

返回值差异:

  • system()函数在执行成功时返回非零值,失败时返回零。这个返回值可以用来判断命令是否执行成功。
  • exec()函数在执行成功时并不返回,因为它的目标是替换当前进程的映像,而不是返回执行结果。如果exec()函数执行失败,它会返回-1,并设置相应的errno值。

参数传递方式差异:

  • system()函数接受一个命令行参数数组,这个数组包含了要执行的命令及其参数。这些参数是通过字符串指针的形式传递给system()函数的。
  • exec()函数则接受不同的参数,具体取决于要执行的程序类型。一般来说,exec()函数会接受一个可执行文件的路径作为第一个参数,然后可以传递其他参数给这个程序。这些参数也是通过字符串指针的形式传递给exec()函数的。

 

标签:函数,exec,system,---,参数,进程,执行
From: https://www.cnblogs.com/god-of-death/p/18546643

相关文章

  • Atcoder Beginner Contest 379 (A-F)
    AtcoderBeginnerContest379(A-F)题目链接A-Cyclic#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;voidShowball(){chara,b,c;cin>>a>>b>>c;cout<<b<<c<<a<<""<......
  • K-Means聚类分析以及误差平方和SSE(Python实现)
    K-means聚类的原理。K-Means算法的目标是将原始数据分为K簇,每一簇都有一个中心点,这也是簇中点的均值点,簇中所有的点到所属的簇的中心点的距离都比到其他簇的中心点更近。K-means聚类的算法流程。1、随机确定K个点作为质心(在本次实验中,我在数据中使用随机数选择了K个点作为初始......
  • COMP1521 - 24T3 A simple MIPS emulator
    COMP1521-24T3Assignment 2: a simple MIPS emulatorAimsUnderstandingencodingandsemantics of MIPS instructionsPractisingfile operations in CPractisingC, includingbitoperationsUnderstandingUNIXfile system syscallsAssignment OverviewIn......
  • MyBatis面试题--(底层原理与基本概念)
    目录什么是Mybatis?MyBatis的好处是什么?什么是ORM?有何作用?MyBatis中的SqlSession是什么?有什么作用?1>什么是SqlSession?2>SqlSession的作用解释一下SqlSessionFactory的作用并解释它如何使用SqlSessionFactory的作用?如何使用SqlSessionFactory1.添加依赖2.配置数据源和S......
  • python+vue基于django/flask新农村综合风貌展示平台java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • 团队项目Scrum冲刺-day4
    一、每天举行站立式会议站立式会议照片一张昨天已完成的工作成员任务陈国金用户模块接口开发凌枫整合MD编辑器陈卓恒完成管理题目页面谭立业完成题目搜索页面廖俊龙接口测试曾平凡前端页面测试曾俊涛完成题目模块接口开发薛秋昊完成题......
  • docker-compose安装pgsql和pgvector
    快速安装PostgreSQL和pgvector1、创建Dockerfile文件,代码如下:#使用PostgreSQL16基础镜像FROMpostgres:16#安装pgvectorRUNapt-getupdate&&\apt-getinstall-ypostgresql-16-pgvector&&\rm-rf/var/lib/apt/lists/*#设置启动命令CMD["postgr......
  • SP703 SERVICE - Mobile Service 题目分析
    SP703SERVICE-MobileService题目分析题目链接前言四倍经验目前这道题是最基础的,四倍经验里面的\(T_2\)与此一样,\(T_3\)有点卡空间,但是还好,方案用short或者char即可优化,\(T_4\)一样,有些卡常,问题不大。分析题目性质没有什么十分有用的性质。思路注意到:分配干活......
  • MX 2025--炼石计划 NOIP 模拟赛 #20
    打得抽象。T3,T4放俩难的板子。由于是MX的题,就不放题意了。邻间的骰子之舞发现复制操作不会超过\(64\)次,而粘贴操作肯定是越均匀越好,直接二分暴力跑就行了。点此查看代码#include<bits/stdc++.h>usingnamespacestd;#definerep(i,s,t,p)for(inti=s;i<=t;i+=p)#......
  • java的算法-余弦相似度
    背景:做过财务系统的小伙伴们都知道,财务系统会有一个自动计费的算法,这个算法依赖于计费模板,之前的同事呢把计费公式乱写(导致很多重复的公式),虽然计费名称不一样但是计费公式却是一样的,今天就写一个算法来计算公式代码之间的相似度publicstaticvoidmain(String[]args){......