You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中execlp系统调用的参数含义及用法相关疑问

execlp调用语句说明

你的推测是正确的,这行execlp("ls","ls","-l", NULL);执行成功的效果,完全等价于在Ubuntu shell中执行ls -l命令。各个参数的作用如下:

  • 第一个参数"ls":指定要执行的程序名,execlp会自动遍历系统PATH环境变量对应的所有目录,找到匹配的ls可执行文件加载运行。
  • 第二个参数"ls":传递给目标程序的第0个参数(对应C程序main函数的argv[0]),也就是程序自身的名称。这是exec族函数的语法要求,虽然大部分程序运行时不会强依赖这个值,但必须按规则传入。
  • 第三个参数"-l":传递给ls程序的第一个运行参数,和你手动执行ls -l时跟的-l选项完全一致,作用是要求ls以长列表格式输出目录的详细信息(包含权限、所有者、大小、修改时间等字段)。
  • 最后的NULL:参数列表结束标记。execlp是可变参数函数,必须用NULL作为最后一个参数,告知系统参数已经全部传递完毕,没有这个标记系统会读取后续内存的垃圾值作为参数,导致运行异常。

补充注意:execlp调用成功后,当前进程的所有原有代码都会被替换为ls程序的代码,后续的代码不会再执行;只有调用失败时才会返回错误值,继续执行原进程的后续逻辑。

内容的提问来源于stack exchange,提问作者Miguel Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:45:05