Linux下system和exec函数族的区别

本文详细介绍了Linux系统中system和exec函数族的区别。system通过shell执行命令并在完成后返回原程序,而exec则直接替换当前进程,使程序变为被调用的程序。在使用上,exec常与fork结合使用。通过示例代码展示了两者的不同行为,如system会在命令执行后继续执行后续代码,而exec则不会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分别man system和 execl得到

——————————————————————————————————————————————————————————————

NAME

       system - execute a shell command

SYNOPSIS
       #include <stdlib.h>

       int system(const char *command);

DESCRIPTION
       system()  executes a command specified in command by calling /bin/sh -c
       command, and returns after the command has been completed.  During exe‐
       cution  of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT
       will be ignored.


RETURN VALUE
       The value returned is -1 on  error  (e.g.   fork(2)  failed),  and  the
       return  status  of the command otherwise.  This latter return status is
       in the format specified in wait(2).  Thus, the exit code of the command

       will  be  WEXITSTATUS(status).   In case /bin/sh could not be executed,

       the exit status will be that of a command that does exit(127).
       If the value of command is NULL, system() returns nonzero if the  shell
       is available, and zero if not.
       system() does not affect the wait status of any other children.

————————————————————————————————————————————————————————————————

NAME
       execl, execlp, execle, execv, execvp, execvpe - execute a file

SYNOPSIS
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值