我想解析在我的程序中使用的命令w
的輸出 我知道我可以使用execlp
執行w
,但是有沒有辦法從w中直接獲取輸出到我的程序中?我想我可以使用管道或其他東西,但我不太瞭解它或管道在execlp命令中的工作方式。如何在我的程序中使用終端命令的輸出?
感謝您的幫助
我想解析在我的程序中使用的命令w
的輸出 我知道我可以使用execlp
執行w
,但是有沒有辦法從w中直接獲取輸出到我的程序中?我想我可以使用管道或其他東西,但我不太瞭解它或管道在execlp命令中的工作方式。如何在我的程序中使用終端命令的輸出?
感謝您的幫助
使用popen(3):
#include <stdio.h>
main()
{
char *command="w";
FILE *fpipe = (FILE*)popen(command,"r")));
char line[256];
while (fgets(line, sizeof(line), fpipe))
{
printf("%s", line);
}
pclose(fpipe);
}
人popen方法
(其他一些隨機字符,讓過去跛腳過濾器)
看popen
一個簡單的方法來做到這一點,儘管它有各種弱點(例如呼叫到外殼)。 libslack也有popen
替換(協處理功能);它在GPL下。
「RTFM」 式的答案是 「跛腳過濾器」 存在的原因。 – grawity 2011-03-05 19:28:29