четверг, 28 мая 2020 г.

call bash script from c and return value

Парсим вывод из линуксового пайпа при помощи popen(), pclose(). Пример из стэковерфлоу:

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

int main(void) {
  /* ls -al | grep '^d' */
  FILE *pp;
  pp = popen("ls -al", "r");
  if (pp != NULL) 

  {
    while (1) 
    {
      char *line;
      char buf[1000];
      line = fgets(buf, sizeof buf, pp);
      if (line == NULL) break;
      if (line[0] == 'd') 

        printf("%s", line); /* line includes '\n' */
    } 
    pclose(pp); 
  }   
  return 0; 

Комментариев нет:

Отправить комментарий