Исправил парсер активных дисков

pull/24/head
Igor Belitskiy 2 years ago
parent 196dfbe84e
commit 5610361769

@ -1,74 +1,65 @@
#include "my_device.h"
device_config obj_device_config;
vector vec_disk;
device_config *get_device_cfg()
vector *get_device_vec()
{
return &obj_device_config;
return &vec_disk;
}
void device_disk_parsed() {
// findmnt -lo source,target,fstype,label -t ext4
char *cmd = "lsblk --fs --raw --output PATH,FSTYPE --exclude 7,11,253";
char *cmd = "findmnt -lo source,target,fstype,label -t ext4";
vector_init(&vec_disk);
int size = 0;
char **responce = yon_config_load(cmd, &size);
obj_device_config.size_disk = 0;
char *split_simvol = " ";
for (int index = 1; index < size; index++)
{
char *disk = yon_char_divide_search(responce[index], "\n", -1);
if (yon_char_find_count(disk, " ") != 0)
if (yon_char_find_count(disk, " ") != 0 && !strstr(disk, "zram") && !strstr(disk, "["))
{
int size_str = 0;
char* str_info = yon_char_parse(disk, size_str, ' ');
char** name_disk = yon_char_divide_search(disk, " ", -1);
char** name_disk = yon_char_parse(disk, &size_str, " ");
int flag = 0;
device_config* obj_device_config = malloc(sizeof(device_config));
for (int index_1 = 0; index_1 < size_str; index_1++) {
if (!strstr(name_disk[index_1], " ")) {
flag+=1;
if (strlen(name_disk[index_1])) {
if (flag == 0) {
obj_device_config.name_disk = yon_char_new(name_disk[index_1])
obj_device_config->name_disk = yon_char_new(name_disk[index_1]);
}
if (flag == 1) {
else if (flag == 1) {
obj_device_config->mounted = yon_char_new(name_disk[index_1]);
}
if (flag == 2) {
else if (flag == 2) {
obj_device_config->file_system = yon_char_new(name_disk[index_1]);
}
if (flag == 3) {
else if (flag == 3) {
obj_device_config->type_dick = yon_char_new(name_disk[index_1]);
}
flag+=1;
}
}
obj_device_config.name_disk = yon_char_parsed_append(obj_device_config.name_disk, &obj_device_config.size_disk, name_disk);
obj_device_config.size_disk--;
obj_device_config.file_system = yon_char_parsed_append(obj_device_config.file_system, &obj_device_config.size_disk, disk);
obj_device_config.size_disk--;
obj_device_config.mounted = yon_char_parsed_append(obj_device_config.mounted, &obj_device_config.size_disk, "");
obj_device_config.size_disk--;
obj_device_config.type_dick = yon_char_parsed_append(obj_device_config.type_dick, &obj_device_config.size_disk, "");
obj_device_config.size_disk--;
disk = yon_char_replace(disk, " ", "");
if (strlen(disk) != 0)
{
char *description_disk = yon_char_unite(name_disk,
obj_device_config->description_disk = yon_char_unite(obj_device_config->name_disk,split_simvol,
obj_device_config->file_system,
split_simvol,
disk,
NULL);
obj_device_config.description_disk = yon_char_parsed_append(obj_device_config.description_disk, &obj_device_config.size_disk, description_disk);
free(description_disk);
}
free(name_disk);
obj_device_config->mounted,
split_simvol,
obj_device_config->type_dick, NULL);
vec_disk.pfVectorAdd(&vec_disk, obj_device_config);
philos_free_string_array(&name_disk, size_str);
}
free(disk);
}
philos_free_string_array(&responce, size);
}
void device_fill_disk(GtkWidget *combo_box_text)
{
for (int index = 0; index < obj_device_config.size_disk; index++)
if (vec_disk.vectorList.total > 0) {
for (int index = 0; index < vec_disk.vectorList.total; index++)
{
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box_text), obj_device_config.description_disk[index]);
device_config* obj_device_config = (device_config*)vec_disk.pfVectorGet(&vec_disk, index);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box_text), yon_char_new(obj_device_config->description_disk));
}
}
}

@ -5,17 +5,17 @@
#include <stdio.h>
#include <unistd.h>
#include "philos_utils.h"
#include "model.h"
typedef struct {
char** name_disk;
char** file_system;
char** mounted;
char** type_dick;
char** description_disk;
int size_disk;
char* name_disk;
char* file_system;
char* mounted;
char* type_dick;
char* description_disk;
} device_config;
void device_disk_parsed();
device_config* get_device_cfg();
vector *get_device_vec();
void device_fill_disk(GtkWidget* combo_box_text);
size_t get_mem_total();
float get_size_pow_memory(size_t size_memory, int size);

@ -751,32 +751,6 @@ void philos_array_char_pars_to(char*** array, char* to) {
}
}
}
void init_device_disk(temp_config* _config) {
for (int index = 0;index< (get_device_cfg()->size_disk*2);index++){
_config->disk_read = yon_char_parsed_append(_config->disk_read,&_config->size_disk, "-");
_config->size_disk--;
_config->i_o_limit_write_size = philos_int_append(_config->i_o_limit_write_size, &_config->size_disk, -3);
_config->size_disk--;
_config->i_o_limit_write = philos_int_append(_config->i_o_limit_write, &_config->size_disk, -3);
_config->size_disk--;
_config->i_o_limit_read_size = philos_int_append(_config->i_o_limit_read_size, &_config->size_disk, -3);
_config->size_disk--;
_config->disk_write = yon_char_parsed_append(_config->disk_write,&_config->size_disk, "-");
_config->size_disk--;
_config->i_o_limit_read = philos_int_append(_config->i_o_limit_read, &_config->size_disk, -3);
}
_config->i_o_limit_write_size = philos_int_append(_config->i_o_limit_write_size, &_config->size_disk, -2);
_config->size_disk--;
_config->disk_write = yon_char_parsed_append(_config->disk_write, &_config->size_disk, NULL);
_config->size_disk--;
_config->disk_read = yon_char_parsed_append(_config->disk_read, &_config->size_disk, NULL);
_config->size_disk--;
_config->i_o_limit_write = philos_int_append(_config->i_o_limit_write, &_config->size_disk, -2);
_config->size_disk--;
_config->i_o_limit_read = philos_int_append(_config->i_o_limit_read, &_config->size_disk, -2);
_config->size_disk--;
_config->i_o_limit_read_size = philos_int_append(_config->i_o_limit_read_size, &_config->size_disk, -2);
}
char** philos_char_parsed_append(char** parsed, int *size, char *string) {
parsed = yon_char_parsed_append(parsed, size, string);

@ -17,7 +17,6 @@
#include <pwd.h>
#include <stdbool.h>
#include "my_device.h"
#define catch(x) ExitJmp:if(__HadError)
#define throw(x) {__HadError=true;goto ExitJmp;}

Loading…
Cancel
Save