【问题标题】:execl() command in LinuxLinux 中的 execl() 命令
【发布时间】:2014-09-14 17:35:49
【问题描述】:

我想使用 execl() 包含一个文件并将整个内容作为作业提交,任何人都可以帮助我,我可以在其中使用哪些参数.. 我可以发送文件路径以外的任何其他参数吗和文件名。

【问题讨论】:

  • 使用excel()?你是说微软Excel?这需要许可证,因此与 Linux 不兼容。
  • 不,是linux中的execl()命令。
  • 除了文件路径之外,您可以发送任意数量的参数。但是 execl() 的最后一个参数必须为 NULL 以指示参数列表的结尾。
  • 很不清楚你想要达到什么。显然,您想编写一个使用 execl() function(不是 command!)的 C 程序来执行将读取文件的其他程序——但它不是清除您希望文件内容到哪里。也不清楚文件名的来源;它会成为您编写或内置程序的参数吗?您是否考虑过使用cat 代替您的程序?您是否考虑过让您的程序使用cat

标签: c linux


【解决方案1】:

在使用execl之前你必须知道使用execl()创建的进程会覆盖
调用 execl() 的进程的上下文。因此我们使用子进程来
调用另一个进程,以便父进程可以继续其有用的工作。

execl() 调用的一般语法:

return_value = execl(arg1, arg2, arg3......., NULL);

如果execl失败,return_value为-1,这个函数只有在失败时才返回。

arg1 : 通常这个参数应该是文件路径。
arg2 : 文件名。
arg3 : 可以是字符串格式的任何东西。

注意:execl() 的所有参数都是“const char *”类型,即不可变
字符串。 (不能更改其值的字符串,否则会出错。)

【讨论】:

  • execl导入的文件会创建运行时文件吗?
  • 不!它不会“创建”文件。当调用 execl 时,该文件应该存在。 execl 只是创建一个新进程而不是文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2012-07-16
相关资源
最近更新 更多