【问题标题】:Terminal command "convert" not found in C program在 C 程序中找不到终端命令“转换”
【发布时间】:2013-10-24 21:25:05
【问题描述】:

我正在尝试使用系统函数在 C 程序中使用转换终端命令,这是代码片段

\#include <stdlib.h>
...
system("cd /Users/myUser/Desktop/photos/pgm;for i in *.jpg; do convert $i 
-compress none  -scale     32x24! $i.pgm; done;")   

但我无法运行转换命令,这是程序输出:

sh: convert: command not found 

我可以在终端中毫无问题地运行相同的命令

【问题讨论】:

  • 什么是“终端命令”?
  • 你试过了吗:*.jpg; do /full/path/to/convert $i
  • @alk 这是“最后一条命令”的替代名称。运行后,您不能输入任何其他命令。
  • @TurtleLoop:你可以创建一个 shell 脚本而不是一个完整的命令行吗?最终,这将被证明是一个更灵活的解决方案。要回答您的问题,您可能需要安装 ImageMagick。
  • 我认为第一行的反斜杠实际上并不存在。

标签: c terminal command system


【解决方案1】:

使用which convert 检查convert 的完整路径。 然后在您的 C 程序中交换完整路径。

【讨论】:

  • 完美 :) 我将其更改为 system("cd /Users/myUser/Desktop/photos/pgm;for i in *.jpg; do /usr/local/bin/convert $i -compress无 - 缩放 32x24!$i.pgm;完成;");它有效,谢谢!
  • 那么你不能通过从你的shell调用它来执行你的C程序。如果你是,它将继承你的 shell 的$PATH。如果您的 C 程序的 $PATH 包含 /usr/local/bin,则无需指定完整路径。
猜你喜欢
  • 2013-10-30
  • 2021-05-05
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 2022-06-15
  • 2022-10-30
相关资源
最近更新 更多