正如你在下面看到的那样,代码似乎有点正确 - 但是这是一个让我烦恼的小事。为了这个例子,我故意将popen中的命令更改为ls s
(在我的情况下是没有目录!)。 shell(?)打印出错误/警告消息:ls: s: No such file or directory
,但它在服务器端执行此操作!每个成功的命令都被写入并发送给客户端似乎很奇怪,但错误和警告却没有。我该如何解决这个问题?
FILE *fp = NULL;
fp = popen("ls s", "r") // Inserting "ls s" as command.
char path[100];
char* buffer = malloc(sizeof(char) * 1024);
while (fgets(path, 100, fp) != NULL){
strcat(buffer, path);
}
write(connected, buffer, strlen(buffer));
free(buffer);
pclose(fp);