/* grep: search for re in file */
int grep(char *re, FILE *f, char *name)
{
   int n, nmatch;
   char buf[BUFSIZ];

   nmatch = 0;
   while (fgets(buf, sizeof buf, f) != NULL) {
      n = strlen(buf);
      if (n > 0 && buf[n-1] == '\n')
         buf[n-1] = '\0';
      if (match(re, buf)) {
         nmatch++;
         if (name != NULL)
            printf("%s:", name);
         printf("%s\n", buf);
      }
   }
   return nmatch;
}

Example 5: The function grep scans a single file, calling match on each line.

Back to Article
Copyright © 1999, Dr. Dobb's Journal