任何人都知道我可以解決這個問題嗎?C - popen沒有顯示正確的輸出
char bash_cmd[256] = "curl";
char buffer[1000];
FILE *pipe;
int len;
pipe = popen(bash_cmd, "r");
if (NULL == pipe) {
perror("pipe");
exit(1);
}
fgets(buffer, sizeof(buffer), pipe);
printf("OUTPUT: %s", buffer);
pclose(pipe);
上面的代碼片段將返回以下內容:
OUTPUT: (�3B
,而不是這是它應該返回:
curl: try 'curl --help' or 'curl --manual' for more information
東西是錯的,我想不出什麼。當我用「ls -la」代替「curl」時,它可以正常工作,但是無論什麼原因,只有當我使用curl時,它纔會正確地將輸出保存到緩衝區中。我能做些什麼來解決這個問題?在此先感謝
另外,用捲曲完整路徑(/ usr/bin/curl)替換「捲曲」也不起作用。 (
首先,您未能檢查函數的返回值。 –