How to execute a shell script from C in Linux?

后端 未结 6 1961
旧巷少年郎
旧巷少年郎 2020-11-28 03:34

How can I execute a shell script from C in Linux?

6条回答
  •  迷失自我
    2020-11-28 04:23

    If you're ok with POSIX, you can also use popen()/pclose()

    #include 
    #include 
    
    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;
    }
    

提交回复
热议问题