From 152d31c0657b1d3f7b17179c1e0e343ad9517be2 Mon Sep 17 00:00:00 2001 From: Dhanu Perera Date: Sun, 24 May 2026 20:46:09 +0530 Subject: [PATCH] proto: showcasing filename as arg input --- src/splitfile.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/splitfile.c b/src/splitfile.c index cb4d1f2..b30cc72 100644 --- a/src/splitfile.c +++ b/src/splitfile.c @@ -5,11 +5,10 @@ #define SIZE_LNBUF 255 //line buffer max size #define SIZE_TXBUF 5000 //text file buffer for each split file -int main() { +int main(int argc, char *argv[]) { int bufsize = 0; int runs = 0; - char filename[SIZE_FN] = ""; char lnbuf[SIZE_LNBUF] = ""; char *txbuf = malloc(SIZE_TXBUF); //allocate split file buffer @@ -18,8 +17,24 @@ int main() { return EXIT_FAILURE; } - printf("Enter file name to be split: "); - scanf("%s", filename); + if (argc < 2) + { + fprintf( + stderr, + "Error: Missing argument. Usage %s \n", argv[0] + ); + return EXIT_FAILURE; + } + else if (argc > 2) { + fprintf( + stderr, + "Error: Too many arguments. Usage %s \n", argv[0] + ); + return EXIT_FAILURE; + } + + /* gets file name from argument 1 */ + char *filename = argv[1]; FILE *readpoint = fopen(filename, "r"); //open fstream, read input file if (readpoint == NULL) {