该程序用来处理http request中path。例如test.php?user_name=simon&age=19
得到该path中所有的Key-value对。
特别:对于test.php?username=si&&mon&age=19 user_name中包含&的情况也做了处理。会得到si&&mon而不是si.
定义了一个struct:
typedef struct {
char *key;
int key_len;
char *value;
int value_len;
} KV;来记录key/value的起始位置和长度。 接口:
int getKV(char *path, KV *kvs, int *kvs_num)传入一个KV数组和数组长度:
KV kvs[10];
int kvs_num = sizeof(kvs)/sizeof(kvs[0]);
int ret = getKV(p, kvs, &kvs_num);
int i;
for (i=0; i<kvs_num; i++) {
printf("%.*s=%.*s\n", kvs[i].key_len, kvs[i].key, kvs[i].value_len, kvs[i].value);
}