Я получаю через именованный команды труб с этим форматом:расщепление переменное число лексем с strtok_r
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
Правдиво, Я не знаю, что, черт возьми, я здесь, я не знаком с c токенизацией. Как я могу изменить свой код для удовлетворения требований?
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;
}
Что ваш вопрос? – Vovanium 2010-11-30 13:00:14