1
我經由命名管道命令接收與該格式的令牌的數目可變:分裂與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