gpt4 book ai didi

c - 如何在 execlp() 中使用大括号?

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:42 25 4
gpt4 key购买 nike

我的程序在我使用 execlp("ls", "ls", "-al", NULL) 时运行,但在我运行 execlp("{", "{", "ls", "-al", "}", NULL)

有没有办法在 execlp() 中使用大括号?

最佳答案

基本上,答案是否定的。

execlp("{", "{", "ls", "-al", "}", NULL)

您正在尝试执行名为 { 的命令。 { 不是命令;它是 shell 语法的一部分,execlp(与 system 不同)不通过 shell 执行其命令。命令名称必须是实际的可执行文件(二进制或 shell 脚本)。

如果你真的想这样做,你可以调用 /bin/sh 作为命令,并传递它随后将执行的命令行参数。例如(我还没有测试过):

execlp("/bin/sh", "/bin/sh", "-c", "{ ls -al; }", NULL);

请注意,整个命令是一个字符串,/bin/sh 将其视为 -c 选项的一个参数。 (然后 shell 本身会将其拆分为单词。)

关于c - 如何在 execlp() 中使用大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26769682/

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