Zdravím, robím si program na ovádanie openvz vps ale narazil som na problém ktorý sa mi nedarí opraviť. Konkrétne mám kód:
char* str = strtok(buffer, " ");
str = strtok (NULL, " ");
printf("VPS id: %s", str);
char comm[40];
FILE *fp;
char var[40];
sprintf(comm, "vzctl status %s | grep running",str);
fp = popen(comm, "r");
if(fgets(var, sizeof(var), fp) == NULL){
if (send(new_fd, "OFF", 3, 0) == -1)
perror("send");
}else{
if (send(new_fd, "ON", 2, 0) == -1)
perror("send");
}
Premenna buffer obsahuje vpsState (ID). Všetko funguje okrem toho že príkaz vypíše "Bad CT ID 1", ale vps s id 1 existuje. Keď dám do kódu príkaz rovno "vzctl status 1 | grep running" všetko funguje ako má. Myslím si že premenná str obsahuje nejaké skryté znaky ktoré nevidím a preto príkaz zlyhá, no nepodarilo sa mi to opraviť.