gpt4 book ai didi

c - c 程序中的 echo 变量

转载 作者:行者123 更新时间:2023-11-30 15:16:13 25 4
gpt4 key购买 nike

我有一个用 C 语言(admin-secret)编写的程序,它有一个名为“authenticate”的函数。该函数内部有一个名为“result”的变量。如何使用另一个 C 程序回显此变量?
这样做的目的是利用strncmp返回值来猜测密码。

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

int main(int argc, char *argv[])
{
char command[1000] = {0};
int result;
sprintf(command, "/home/alice/Public/admin-secret %s; echo %d", argv[1], result);
system(command);
printf("Result: %s\n" , result);
return 0;
}

最佳答案

您需要创建一个管道,一个简单的方法是使用 POSIX 函数 popen() .

#include <stdio.h>

int main(int argc, char* argv[])
{
FILE *pipe;
char line[256];
pipe = popen("ls", "r");
if (pipe != NULL)
{
while (fgets(line, sizeof(line), pipe) != NULL)
fprintf(stdout, "%s", line);
pclose(pipe);
}
return 0;
}

您也可以使用 sprintf()1 构建命令,并将其作为第一个参数传递给 popen(),这只是向您展示如何捕获另一个程序的输出。

<小时/>

1你真的应该使用 snprintf()防止目标数组溢出

关于c - c 程序中的 echo 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33183853/

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