到目前为止,我已经习惯了编写 eBPF 代码,并且希望避免在我的 BPF 文本中使用指针,因为从中获得正确的输出非常困难。由于所有示例代码都需要指针,因此使用 strtok() 似乎是不可能的。我还想在将来将其扩展为 CSV 文件,因为这对我来说是一种练习方式。我能够在这里找到另一个用户的代码,但由于一个指针,它给了我一个密件抄送终端错误。
char str[256];
bpf_probe_read_user(&str, sizeof(str), (void *)PT_REGS_RC(ctx));
char token[] = strtok(str, ",");
char input[] ="first second third forth";
char delimiter[] = " ";
char firstWord, *secondWord, *remainder, *context;
int inputLength = strlen(input);
char *inputCopy = (char*) calloc(inputLength + 1, sizeof(char));
strncpy(inputCopy, input, inputLength);
str = strtok_r (inputCopy, delimiter, &context);
secondWord = strtok_r (NULL, delimiter, &context);
remainder = context;
getchar();
free(inputCopy);