gpt4 book ai didi

c - 在linux中使用execv使用 './'命令

转载 作者:行者123 更新时间:2023-11-30 17:39:15 26 4
gpt4 key购买 nike

我正在 Linux 中构建自己的伪 shell。

我正在使用 execv 来运行通常可以由 linux shell 完成的命令。

我可以使用大多数命令,但我不知道如何使用 execv 和“./”命令来运行其他程序。有谁知道该怎么做吗?

任何建议都会有帮助。

最佳答案

./不是命令,而是当前目录的路径。听起来您应该使用 execvp(file, argv),而不是 execv(path, argv)。

更新添加:更具体地说,如果您的文件名包含“/”,execvp 不会搜索 PATH。例如,这有效:

#include <unistd.h>
#include <stdio.h>

int main(void)
{
execvp("./hello.sh", NULL);
}

我在当前目录中有 hello.sh,使用 gcc test.c 编译了代码,运行 ./a.out 并它打印“ Hello World ”。 '.'不在我的路径中。

关于c - 在linux中使用execv使用 './'命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21869581/

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