Skip to content
Snippets Groups Projects
Commit 7864223f authored by recabet's avatar recabet
Browse files

Created basic utilities

parents
Branches
No related merge requests found
cmake-build-debug
.idea
#include <stdio.h>
#include "utils/utils.h"
int main(void)
{
printf("Hello, World!\n");
return 0;
}
\ No newline at end of file
#ifndef SCHEDULER_H
#define SCHEDULER_H
#define CPU_CAP 20;
#define MAX_TIMESTAMP 20;
#endif //SCHEDULER_H
#include "utils.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINES 1024
workload_item __parse_line(const char* line)
{
workload_item item;
sscanf(line, "%d %d %zu %zu %zu %s %d",
&item.pid,
&item.ppid,
&item.ts,
&item.tf,
&item.idle,
item.cmd,
&item.prio);
item.cmd[sizeof(item.cmd) - 1] = '\0';
return item;
}
workload_item* _get_items(const char* filepath)
{
FILE* file = fopen(filepath, "r");
if (!file)
{
perror("fopen");
return NULL;
}
workload_item* items = malloc(MAX_LINES * sizeof(workload_item));
if (!items)
{
fprintf(stderr, "Memory allocation failed\n");
fclose(file);
return NULL;
}
char* line = NULL;
size_t len = 0;
ssize_t read;
size_t count = 0;
while ((read = getline(&line, &len, file)) != -1)
{
if (count >= MAX_LINES)
{
fprintf(stderr, "Exceeded maximum storage\n");
break;
}
items[count] = __parse_line(line);
++count;
}
free(line);
fclose(file);
return items;
}
#ifndef UTILS_H
#define UTILS_H
#include "workload_item.h"
workload_item* _get_items(const char* filepath);
workload_item __parse_line(const char* line);
#endif //UTILS_H
#ifndef WORKLOAD_ITEM_H
#define WORKLOAD_ITEM_H
#include <stdlib.h>
struct workload_item_t {
int pid;
int ppid;
size_t ts;
size_t tf;
size_t idle;
char cmd[32];
int prio;
};
typedef struct workload_item_t workload_item;
#endif //WORKLOAD_ITEM_H
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment