gpt4 book ai didi

shell 的 C 输入循环

转载 作者:行者123 更新时间:2023-11-30 18:07:26 25 4
gpt4 key购买 nike

所以我正在创建一个非常简单的 C 程序,它只执行 shell 命令。这是我到目前为止所拥有的:

#include <stdio.h>
int main()
{
char input[30];
fputs("$ ", stdout);
fflush(stdout);
fgets(input, sizeof input, stdin);
system(input);
}

它有效,但仅适用于一个命令。例如,如果我编译并输入 ./cmd 我会得到 $ 提示符。如果我输入 ls 我会得到我应该得到的东西。但随后它会退出并返回到常规系统 shell。我怎样才能让用户输入命令后返回到“$”输入。

最佳答案

您正在寻找的是循环;如果您想由用户输入确定退出条件,实际上您可能需要一个无限循环(惯用的方式是 for(;;) )和 if输入采集后,结果为 break如果您的条件满足。

#include <stdio.h>

int main()
{
char input[30];
for(;;) /* infinite loop */
{
fputs("$ ", stdout);
fflush(stdout);
fgets(input, sizeof input, stdin);
if(/* put here your exit condition */)
break; /* breaks out of the loop */
system(input);
}
return 0;
}

您的退出条件可能涉及使用 strcmp (来自 <string.h> )执行用户输入的字符串和退出命令之间的比较。

关于shell 的 C 输入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631556/

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