Я пытаюсь открыть и прочитать файл CSV, содержащий данные, необходимые для настройки возможностей. Мне нужно установить возможности на основе того, какие возможности считываются из файла CSV. Я открываю файл и читаю данные в буфер. Вот где я застрял. Теперь я хочу использовать эти данные в буфере для сравнения строк или символов, чтобы ввести операторы if else. Например, мой CSV-файл выглядит следующим образом:
1000, CAP_SETPCAP, CAP_NET_RAW, CAP_SYS_ADMIN
Первое число - это euid, а остальные - возможности, которые я хочу установить для процесса. Когда я читаю это в буфер, буфер содержит десятичные числа ASCII. Я хочу иметь возможность преобразовать буфер в строку или массив, чтобы я мог сделать сравнения.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BUFFER_SIZE 1024
int main(int argc, char *argv[]){
FILE *fp;
fp = fopen("csvtest.csv", "r");
char buff[BUFFER_SIZE];
char *newCaps[] = {};
if(!fp){
printf("did not open\n");
}
fgets(buff, 1024, fp);
int i = 0;
//I don't know how to just get the size of what was put into the buffer
while(i < size_of_buffer){
//these are the comparisons I'd like to make, I know this isn't right
if(buffer[1000] == "1000"){
printf("This is the correct euid\n");
newCaps[0] = buffer[CAP_SETPCAP];
newCaps[1] = buffer[CAP_NET_RAW];
newCaps[2] = buffer[CAP_SYS_ADMIN];
}
i++;
}
Что-то в этом роде.