Я получаю через именованный канал команды в этом формате:
GETIP <machine_name> \n
<process_id>
GETNAME<ip_address> \n
<process_id>
UDATA <machine_name> <ip_address>
<process_id>
DDATA <machine_name> \n
<process_id>
Итак, примеры строк, считываемых из канала:
GETIP lolcatzmachine
1235
UDATA cheezburger 127.0.0.1
7564
По правде говоря, я не знаю, какого черта я здесь делаю, я не знаком с токенизацией. Как я могу изменить свой код в соответствии с требованиями?
char *token;
char *commandName [10];
char machineName[200];
char ip[40];
char pid[30];
char * separator = " ";
char *brkt; // reentrant pointer, as this tokenizing will be multithreaded
for ( ; ; ) {
token=strtok_r(command_and_pid, separator, &brkt); //strtok_r is needed for multithreading
commandName = strdup(token);
//ip=strtok_r(NULL, separator, &brkt);
//pid=strtok_r(NULL, separator, &brkt);
if (token == NULL)
break;
}