#include "resource_handler/resource_handler.h" int extract_numbers(char* str, int* res) { bool is_digit=false,last_digit=false; int cur=0; int begin=-1; int* old_res=res; bool go=true; while(go) { go=(*str)!=0; is_digit = *str <= '9' && *str >= '0'; if(is_digit) { cur *= 10; cur += *str - '0'; } else if(last_digit) { if(*str == '-') { begin = cur; } else if(begin != -1) { for(int core = begin; core <= cur; core++) { *res = core; res++; } begin = -1; } else { *res = cur; res++; begin = -1; } cur = 0; } str++; last_digit = is_digit; } return res - old_res; } int get_isolated_cores(int** res) { char buf[MAX_OPTION]; read(open("/sys/devices/system/cpu/isolated", O_RDONLY),buf,MAX_OPTION); *res=malloc(sizeof(int)*MAX_CORES); return extract_numbers(buf,*res); }