Nein, variable Strings kannst du mit einem sscanf nicht erschlagen.
Du musst schon selbst hantieren, z.B.
int main()
{
char *p="<PLETZHALTER> protocol=pp11 <PLATZHALTER> portid=12345 <PLATZHALTER> name=pp22";
{
char s[100],s1[100],s2[100];
unsigned i=0,u;
while(1==sscanf(p+=i,"%99s%n",s,&i))
if(strstr(s,"protocol=")==s)
strcpy(s1,s+9);
else
if(strstr(s,"name=")==s)
strcpy(s2,s+5);
else
if(strstr(s,"portid=")==s)
sscanf(s+7,"%u",&u);
printf("%s %s %u",s1,s2,u);
}
return 0;
}
http://ideone.com/4yrokY