gpt4 book ai didi

我可以不使用历史记录或 ~/.bash_history 来执行命令吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:40 25 4
gpt4 key购买 nike

我的代码:

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

int main(void)
{
printf("entering main process---\n");
int ret;
char *argv[] = {"history",NULL};
ret = execvp("history",argv);
if(ret == -1)
perror("execl error");
printf("exiting main process ----\n");
return 0;
}

输出:进入主流程---execl错误:没有那个文件或目录退出主进程----

问题: 我可以不使用历史记录或 ~/.bash_history 来执行命令吗?

使用 execvp 之类的函数似乎出了点问题。我试过系统功能。

代码:

#include <stdio.h>
int main()
{
system("history");
return 0 ;
}

没有输出。

最佳答案

如果您尝试 man history,您将进入 BASH_BUILTINS(1) General Commands Manual 页面。这意味着历史是 bash shell 内部结构的一部分。为了通过 execvp() 执行某些操作,您需要在 PATH 中的某处有一个实际的可执行文件。

关于我可以不使用历史记录或 ~/.bash_history 来执行命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286661/

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