gpt4 book ai didi

c - 远程执行shell命令

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

我简直是在扯头发。我正在尝试为我的 IRC 机器人创建远程 shell 执行,但是,当我使用诸如“ls”或“cd”之类的命令时,我得到了“: not found”的返回,然而,其他命令,如 mkdir 或echo 似乎工作正常。当我对命令进行硬编码时也是如此,我得到的输出与它应该的完全一样。

谁能看出原因?这是我的代码:

            FILE *fp;
int status;
char path[1035];
/* Open the command for reading. */
fp = popen(ptr1, "r"); // hard code command and it works ????fp = popen("/bin/ls /etc/", "r");
printf("%s", ptr1);//check received command (debugging)
if (fp == NULL) {
printf("Failed to run command\n" );

出于道德原因删除了一些代码。

最佳答案

我会从您的错误消息中猜测您在传递给 popen 的字符串中有一个虚假的回车符。因此,您实际上是在调用,例如 popen("ls\r", "r"); 失败并显示错误消息 ls\r: not found。当您打印该错误消息时,回车会导致它跳回到该行的开头,看起来像 : not found

回车是像这样的奇怪错误的臭名昭著的来源,因为它们不是 shell 的空白,但是当你打印它们时你无法真正看到它们。

关于c - 远程执行shell命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587340/

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