Я просто делаю очень простой sscanf, и это не работает, и я понятия не имею, почему (я новичок в C).sscanf не подходит для сопоставления строки
Я считаю, что он должен работать, и я схожу с ума по этому поводу ...
Вот пример кода:
int rval; // return value
char* buf;
char* file = "/proc/stat";
long unsigned int intr=0, introld=0;
buf=file2buf(file);
if((rval=sscanf(buf, "intr %lu", &introld)) < 1) perror("ERROR");
printf("buffer: %s\nintrold: %lu\n", buf, introld);
free(buf);
И вот что он печатает:
ERROR: Success
buffer: cpu 1226442 3373 193292 19167181 57056 3 154 0 0 0
cpu0 323691 790 47844 4778847 9693 0 62 0 0 0
cpu1 290857 1430 42436 4804284 20607 0 25 0 0 0
cpu2 326087 608 57761 4763973 10862 2 40 0 0 0
cpu3 285805 544 45249 4820075 15893 0 25 0 0 0
intr 48727278 36 26655 0 0 0 0 0 0 1 11277 0 0 3788861 0 0 0 70288 0 0 2 0 0 0 33 0 0 443731 0 25936 1429307 25 893 2807619
introld: 0
Очевидно, Соответствующая строка (intr) есть. Какую очевидную ошибку я делаю?
'sscanf (buf,' -> 'sscanf (strstr (buf," intr "),' – BLUEPIXY