Ejemplo n.º 1
0
//edited from catbyline.c
int main (int argc, char **argv) {
  options opts;
  program_name = basename (argv[0]);
  scan_options (argc, argv, &opts);
  
  if (argc == 1) {
    exit_status = EXIT_FAILURE;
    fprintf (stderr, "%s: invalid operands %s\n", 
             program_name, strerror (errno));
  }else{
    char *string = argv[optind];
    for (int argi = optind+1; argi < argc; ++argi) {
      char *filename = argv[argi];
      if (strcmp (filename, STDIN_NAME) == 0) {
        catbyline (stdin, STDIN_NAME, string, &opts);
      }else {
        if (argc > optind+2) printf ("FILE %s:\n", filename);
        FILE *input = fopen (filename, "r");
        if (input != NULL) {
          catbyline (input, filename, string, &opts);
          fclose (input);
        }else {
          exit_status = EXIT_FAILURE;
          fflush (NULL);
          fprintf (stderr, "%s: %s: %s\n", program_name,
                   filename, strerror (errno));
          fflush (NULL);
        }
      }
    }
  }
  return exit_status;
}
Ejemplo n.º 2
0
int main (int argc, char **argv) {
   program_name = basename (argv[0]);
   if (argc == 1) {
      catbyline (stdin, STDIN_NAME);
   }else {
      for (int argi = 1; argi < argc; ++argi) {
         char *filename = argv[argi];
         if (strcmp (filename, STDIN_NAME) == 0) {
            catbyline (stdin, STDIN_NAME);
         }else {
            FILE *input = fopen (filename, "r");
            if (input != NULL) {
               catbyline (input, filename);
               fclose (input);
            }else {
               exit_status = EXIT_FAILURE;
               fflush (NULL);
               fprintf (stderr, "%s: %s: %s\n", program_name,
                        filename, strerror (errno));
               fflush (NULL);
            }
         }
      }
   }
   return exit_status;
}
Ejemplo n.º 3
0
//Synopsis: read
int main (int argc, char** argv) {
    //Set the program name and comparator string
    program_name = basename (argv[0]);
    bool nope = false;
    bool stdread = false;
    int base = 0;
    scan_options (argc, argv, &flags);
    if ((flags.ignore_case == false) && (flags.filenames_only == false)
        && (flags.number_lines == false)) nope = true;
    if (nope == true) {
        stringComp = argv [1];
        base = 2;
        if (argc == 2) {
            stdread = true;
            catbyline (stdin, STDIN_NAME, argc, nope);
        }
    } else {
        stringComp = argv [2];
        base = 3;
        if (argc == 3) {
            stdread = true;
            catbyline (stdin, STDIN_NAME, argc, nope);
        }
    }
    //If there are no file inputs it will read stdin
    if (!stdread) {
        for (int argi = base; argi < argc; ++argi) {
            char *filename = argv[argi];
            if (strcmp (filename, STDIN_NAME) == 0) {
                catbyline (stdin, STDIN_NAME, argc, nope);
            }else {
                FILE *input = fopen (filename, "r");
                if (input != NULL) {
                    catbyline (input, filename, argc, nope);
                    fclose (input);
                }else {
                    exit_status = EXIT_FAILURE;
                    fflush (NULL);
                    fprintf (stderr, "%s: %s: %s\n", program_name,
                             filename, strerror (errno));
                    fflush (NULL);
                }
            }
        }
    }
    
    return exit_status;
}