Vugen: Read A File Stream For Validation

In this example we are running tasklist.exe in windows to check the existence of a process by looking at the first 13 characters in the file.

checkprocess()
 {
 char command[1024];
 int i, total = 0;
 char buffer[12], ch;
 char *filename = lr_eval_string("C:\\tasklist_{pTime}.txt");
 long file_stream;
 
//Run a system command to open up a DOS prompt and tasklist
//Save it to a file
 
sprintf(command, "tasklist /FI \"IMAGENAME eq MobileEngine.exe\"
       /FI \"STATUS eq running\" /FO TABLE /NH > %s", filename);
system(command);
 
// open file and check for errors opening it.
 
if ((file_stream = fopen(filename, "r")) == NULL ) {
lr_error_message("Cannot open %s", filename);
 return -1;
 }
 
//read the file stream information - place in loop.
 
for(i=0; (i<NUM_CHARS) && (feof(file_stream) == 0); i++) {
     ch = fgetc(file_stream); /* Read in the next character */
     buffer[i] = ch; /* Place the new char at the end of the buffer */
 } 
 
/* Add null to end the buffer converting it to a string */
 
buffer[i] = NULL;
lr_output_message("First %d characters of file %s are \"%s\"",
     NUM_CHARS, filename, buffer);
 
if (fclose(file_stream)){
 lr_error_message("Error closing file %s", filename);
 };
 
// Now we either have something in the buffer or not.
// We are looking for the string "MobileEngine" in this case
// Either way, delete the temp file when done.
 
if (strcmp(buffer, "\nMobileEngine") != 0) {
 lr_error_message("The process is not running. Aborting Script...");
 sprintf(command, "DEL %s", filename );
 // lr_error_message("%s", command);
 system(command);
 return -1;
 }
 else{
 lr_output_message("The process is running. Continue...");
 sprintf(command, "DEL %s", filename );
 // lr_error_message("%s", command);
 system(command);
 };
 
return 0;
 
}

Can you think of an instance when you might need this code? I’d like to hear about examples from your everyday situations.

What's Next?

Did you enjoy this article? Help spread the word by sharing:

Join the Northway Navigator Club today and get access to restricted content including our best tips and tricks. Membership is free! You will also receive free email updates by registering.

Engage in the conversation and leave a comment:

Scott Moore

About Scott Moore (153 articles)

With over 20 years of IT experience with various platforms and technologies, Scott has tested some of the largest applications and infrastructures in the world. He is a Certified Instructor and Certified Product Consultant in HP’s LoadRunner and Performance Center products. He currently holds HP certifications for ASE, ASC, and CI. A thought leader in the APM space, he speaks regularly at IT conferences and events