2014年6月28日 星期六

[Pipe] read mass data from command by using pipe






Code


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

int main()
{
FILE
*read_fp;
char buffer[BUFSIZ + 1];
int chars_read;

memset
(buffer, '\0', sizeof(buffer));
read_fp
= popen("ps -ax", "r");
if (read_fp != NULL) {
chars_read
= fread(buffer, sizeof(char), BUFSIZ, read_fp);
while (chars_read > 0) {
buffer
[chars_read - 1] = '\0';
printf
("Reading:-\n %s\n", buffer);
chars_read
= fread(buffer, sizeof(char), BUFSIZ, read_fp);
}
pclose
(read_fp);
exit(EXIT_SUCCESS);
}
exit(EXIT_FAILURE);
}


Result


Reading:-
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /sbin/init
2 ? S 0:00 [kthreadd]
3 ? S 0:03 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
7 ? S< 0:00 [kworker/u:0H]
8 ? S 0:00 [migration/0]
9 ? S 0:00 [rcu_bh]
10 ? S 0:09 [rcu_sched]
11 ? S 0:00 [watchdog/0]
12 ? S 0:00 [watchdog/1]
13 ? S 0:03 [ksoftirqd/1]
16 ? S< 0:00 [kworker/1:0H]
.....

0 意見:

張貼留言