Why is str_token2 getting this value when my delimiter for tempString's tokenizer is "
test test2 test3
str_token2 = test test2 test3
Code:
while(fgets(buffer, 80, stdin)!=NULL) {
bg_flag = command_type(buffer);
chomp(buffer);
char *tempString[80];
strcpy(tempString, buffer);
char *str_token;
char *str_token2;
int token_counter = 0;
str_token = strtok(buffer, " ");
str_token2 = strtok(tempString, "\"");
if(strcmp(str_token, "cd") == 0){
while(str_token != NULL){
if(token_counter == 1){
chdir(str_token);
}
str_token = strtok(NULL, " ");
token_counter++;
}
}else{
while(str_token != NULL && str_token2 != NULL){
if(token_counter == 0){
cmdPath = str_token2;
cmdArray[0] = basename(str_token2);
}else{
if(strcmp(str_token, "&") == 1){
cmdArray[token_counter] = str_token2;
//printf("cmdArray[token_counter] = %s\n", cmdArray[token_counter]);
}
}
printf("str_token2 = %s\n", str_token2);
token_counter++;
str_token = strtok(NULL, " ");
str_token2 = strtok(NULL, "\"");
}
}
printf("bg_flag = %d\n", bg_flag);
if(bg_flag) {
my_system(cmdPath, cmdArray);
}else{
rv = system(buffer);
}
if(strcmp(buffer, "exit") == 0) {
exit(3);
}
}
}