c - Use a variable in system() and store its output in a file -


i want store output of system() in file uses string variable.

char file[10],command[100]; printf("enter file name:\n"); fgets(file,10,stdin); sprintf(command,"lsof | grep %s >> result.txt",file); system(command); 

result.txt comes out empty.

after enter data

fgets(file,10,stdin); 

you press enter key. fgets includes newline character(\n) in buffer(file) unless input more 8 characters long.

to fix problem, need strip off newline character file problem-maker. can achieve using cool function strcspn() string.h. add following after fgets:

buffer[strcspn(buffer,"\n")] = 0; 

or else, use familiar strlen() function:

size_t len = strlen(buffer);  if(len > 0 && buffer[len-1] == '\n')     buffer[len-1] = 0; 

you should check if system() , fgets() successful checking return values.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -