gpt4 book ai didi

c - 将可选参数传递到 C execlp() 时出现问题

转载 作者:行者123 更新时间:2023-12-02 18:22:40 25 4
gpt4 key购买 nike

我正在编写一个 C 程序,它使用 execlp() 来运行 Linux 命令行工具 convert。该命令采用可选参数。但是,当将其与 execlp() 一起使用时,我的 C 程序无法识别我传入的标志,因此无法正确执行命令。

例如,如果我在终端中运行此命令 convert -resize 10% src.jpg dst.jpg 它将把 src 图像的大小调整 10%,并将其保存到 dst。然而,当我用这段代码运行我的 C 程序时

rc = execlp("convert", "-resize 10%", src, dst, NULL);

我的计算机无法识别resize -10%标志,并且不会对我的源图像执行任何操作。这是为什么?

最佳答案

按照惯例,进程的第一个参数(可通过 argv[0] 访问)是进程的名称。您尚未包含该内容,因此 "-resize 10%" 被读取为进程名称而不是选项。

另外,"-resize 10%"实际上是用空格分隔的两个参数,所以需要将它们分开。

rc = execlp("convert", "convert", "-resize", "10%", src, dst, NULL);

关于c - 将可选参数传递到 C execlp() 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70660964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com