这些都是可以在C(和C++)中使用的exec版本

execl
execle
execlp
execv
execve
execvp

它们之间有什么不同?你怎么知道该用哪一个呢?

推荐答案

不同之处在于:

  1. L vs V:是否要将参数作为

    • L:调用中的单个参数(变量参数列表):execl()execle()execlp()execlpe()
    • V:作为char*execv()execve()execvp()execvpe()的数组

    当要发送到可执行进程的参数数量可变时,数组格式很有用--因为事先不知道,所以不能在函数调用中输入固定数量的参数.

  2. E:末尾带有"e"的版本允许您另外传递一个char*数组,这是在执行程序启动之前添加到衍生进程环境中的一组字符串.这是传递参数的另一种方式,真的.

  3. P:其中带有"p"的版本使用环境变量PATH

C++相关问答推荐

如何在C中的空指针函数中传递浮点值

如何在不修改字符串缓冲区早期使用的情况下覆盖字符串缓冲区

为什么下面的C代码会进入无限循环?

从内联程序集调用Rust函数和调用约定

丑陋的三重间接:可扩展的缓冲区管理 struct

有没有更简单的方法从用户那里获取数据类型来计算结果

增加getaddrinfo返回的IP地址数量

如何在C中通过套接字自定义数据类型读取原始变量?

将常量转换为指针会增加.数据大小增加1000字节

为什么我不能只在内存地址中添加一个int来寻址任何数组?

在创建动态泛型数组时,通过realloc对故障进行分段

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

为什么Fread()函数会读取内容,然后光标会跳到随机位置?

S,在 struct 中创建匿名静态缓冲区的最佳方式是什么?

Valgrind正在使用一个Fexecve电话报告不可能发生的事情

Tcl_GetDoubleFromObj在列表的迭代中是一个缺点

使用 strtok 多次分割一个字符串会导致意外行为

clion.我无法理解 Clion 中发生的 scanf 错误

C23 中的 [[reproducible]] 和 [[unsequenced]] 属性是什么?什么时候应该使用它们?

C99 的 %zu 格式说明符不起作用