Hey all,
First post to the forum. I am trying to learn C and I am really excited, however, I wonder if my choice of text was bad. I picked up Sams Learn C in 21 days and I am trying to compile the print_it program. I am getting all kinds of errors that point to stdprn. Apparently, stdprn is defined for a Windows/Dos environment and I am using Linux.
I did google this and tried to fix the issue, only being met with other errors and I am in over my head. Here is the original .c program(Below are modifications I tried):
Here is where I try to define stdprn, only met with more errors:Code:/* print_it.c - This program prints a listing with line numbers! */ #include <stdlib.h> #include <stdio.h> void do_heading(char *filename); int line = 0, page = 0; int main( int argv, char *argc[] ) { char buffer[256]; FILE *fp; if( argv < 2 ) { fprintf(stderr, "\nProper Usage is: "); fprintf(stderr, "\n\nprint_it filename.ext\n" ); return(1); } if (( fp = fopen( argc[1], "r" )) == NULL ) { fprintf(stderr, "Error opening file, %s!",argc[1]); return(1); } page = 0; line = 1; do_heading( argc[1]); while( fgets( buffer, 256, fp ) != NULL ) { if (line % 55 == 0) do_heading(argc[1]); fprintf( stdprn, "%4d:\t%s", line++, buffer); } fprintf( stdprn, "\f" ); fclose(fp); return 0; } void do_heading( char *filename ) { page++; if (page > 1) fprintf( stdprn, "\f" ); fprintf( stdprn, "Page: %d, %s\n\n", page, filename); }
How would I go about getting this resolved?Code:/* print_it.c - This program prints a listing with line numbers! */ #include <stdlib.h> #include <stdio.h> void do_heading(char *filename); int line = 0, page = 0; int main( int argv, char *argc[] ) FILE *stdprn = popen("/usr/bin/lpr", "w"); { char buffer[256]; FILE *fp; if( argv < 2 ) { fprintf(stderr, "\nProper Usage is: "); fprintf(stderr, "\n\nprint_it filename.ext\n" ); return(1); } if (( fp = fopen( argc[1], "r" )) == NULL ) { fprintf(stderr, "Error opening file, %s!",argc[1]); return(1); } page = 0; line = 1; do_heading( argc[1]); while( fgets( buffer, 256, fp ) != NULL ) { if (line % 55 == 0) do_heading(argc[1]); fprintf( stdprn, "%4d:\t%s", line++, buffer); } fprintf( stdprn, "\f" ); fclose(fp); return 0; } void do_heading( char *filename ) { page++; if (page > 1) fprintf( stdprn, "\f" ); fprintf( stdprn, "Page: %d, %s\n\n", page, filename); }
Thanks!!!
Joe



LinkBack URL
About LinkBacks




)... Here is what I get...