gpt4 book ai didi

c - 使用 execlp 的更多过滤器参数

转载 作者:行者123 更新时间:2023-12-02 03:36:37 25 4
gpt4 key购买 nike

我一直在尝试使用 execlp() 并想出了一个主意。我想执行一个带有更多过滤器的 man 命令。这是我想出的:

void cmd_help(void)
{
printf("shell command: help\n");
execlp("/usr/bin/man", "man", "intro", "| more -8", NULL);
}

它显示了 man 介绍页面,但“| more -8”参数不起作用。可能是什么问题?

最佳答案

使用 execlp,您只能执行一个二进制文件并向其发送一些参数。 I/O 重定向或特殊字符扩展等服务将无法工作,即使它们在命令行上工作也是如此。这是因为它们是在调用实际命令之前由 shell 解释器执行的。要使用它们,您需要调用 shell。例如:

void cmd_help(void)
{
printf("shell command: help\n");
execlp("/bin/bash", "bash", "-c", "man intro | more -8", NULL);
}

关于c - 使用 execlp 的更多过滤器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029916/

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