From d25ac88e15128fba8be14a81c4249f8acf881266 Mon Sep 17 00:00:00 2001 From: fanasina Date: Tue, 28 Oct 2025 19:27:02 +0100 Subject: [PATCH] y_net_neur_net: create some managers files --- .../include/y_net_neur_net/y_nnn_manager.h | 8 +++ .../y_net_neur_net/y_nnn_screen_manager.h | 29 ++++++++ .../src/y_net_neur_net/y_nnn_manager.c | 3 + .../src/y_net_neur_net/y_nnn_screen_manager.c | 71 +++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 y_network_neural_network_/include/y_net_neur_net/y_nnn_manager.h create mode 100644 y_network_neural_network_/include/y_net_neur_net/y_nnn_screen_manager.h create mode 100644 y_network_neural_network_/src/y_net_neur_net/y_nnn_manager.c create mode 100644 y_network_neural_network_/src/y_net_neur_net/y_nnn_screen_manager.c diff --git a/y_network_neural_network_/include/y_net_neur_net/y_nnn_manager.h b/y_network_neural_network_/include/y_net_neur_net/y_nnn_manager.h new file mode 100644 index 0000000..727e8b8 --- /dev/null +++ b/y_network_neural_network_/include/y_net_neur_net/y_nnn_manager.h @@ -0,0 +1,8 @@ +/* file: y_network_neural_network/include/y_net_neur_net/y_nnn_manager.h */ +#ifndef Y_NETWORK_NEURAL_NETWORK__MANAGER__H_C +#define Y_NETWORK_NEURAL_NETWORK__MANAGER__H_C + + + + +#endif /* Y_NETWORK_NEURAL_NETWORK__MANAGER__H_C */ diff --git a/y_network_neural_network_/include/y_net_neur_net/y_nnn_screen_manager.h b/y_network_neural_network_/include/y_net_neur_net/y_nnn_screen_manager.h new file mode 100644 index 0000000..c8a67cd --- /dev/null +++ b/y_network_neural_network_/include/y_net_neur_net/y_nnn_screen_manager.h @@ -0,0 +1,29 @@ +/* file: y_network_neural_network/include/y_net_neur_net/y_nnn_screenmanager.h */ +#ifndef Y_NETWORK_NEURAL_NETWORK__SCREEN_MANAGER__H_C +#define Y_NETWORK_NEURAL_NETWORK__SCREEN_MANAGER__H_C + +#include +#include +#include +#include +#include +#include + + +#include +#include + + +#include "list_t/list_t.h" + +GENERATE_LIST_ALL(pid_t) + + +//#include "y_socket_t/y_list_var_tool.h" + +pid_t max_pidof_to_list_pid_t(char *target, struct main_list_pid_t *m_pid_t); + +int sprintbashpid(pid_t pid, char *content, size_t size_content); + + +#endif /* Y_NETWORK_NEURAL_NETWORK__SCREEN_MANAGER__H_C */ diff --git a/y_network_neural_network_/src/y_net_neur_net/y_nnn_manager.c b/y_network_neural_network_/src/y_net_neur_net/y_nnn_manager.c new file mode 100644 index 0000000..9193160 --- /dev/null +++ b/y_network_neural_network_/src/y_net_neur_net/y_nnn_manager.c @@ -0,0 +1,3 @@ +/* file: y_network_neural_network/src/y_net_neur_net/y_nnn_manager.c */ + +#include "y_net_neur_net/y_nnn_manager.h" diff --git a/y_network_neural_network_/src/y_net_neur_net/y_nnn_screen_manager.c b/y_network_neural_network_/src/y_net_neur_net/y_nnn_screen_manager.c new file mode 100644 index 0000000..9095c1c --- /dev/null +++ b/y_network_neural_network_/src/y_net_neur_net/y_nnn_screen_manager.c @@ -0,0 +1,71 @@ +/* file: y_network_neural_network/src/y_net_neur_net/y_nnn_screenmanager.c */ +#include "y_net_neur_net/y_nnn_screen_manager.h" + +#define SIZE_LOCAL_BUF 300 + +GEN_LIST_ALL(pid_t) + + +/* return max pidof target, and if m_pid_t is not NULL, put into it all pids */ +pid_t max_pidof_to_list_pid_t(char *target, struct main_list_pid_t *m_pid_t){ + pid_t maxpid=0; + struct dirent *entry; + DIR *proc = opendir("/proc"); /* */ + + if(!proc){ /* fail */ + perror("opendir /proc"); + return -1; + } + /* loop on subdir of proc */ + while((entry=readdir(proc)) != NULL){ + int is_pid=1; /* init to not digit subdir */ + for(int i=0; entry->d_name[i]; ++i){ + if(!isdigit((unsigned char) entry->d_name[i])){ + is_pid=0; + break; + } + } + if(!is_pid) /* not pid i.e, exists i / is_pid == 0 */ + continue; + + char path[SIZE_LOCAL_BUF]; + snprintf(path,SIZE_LOCAL_BUF, "/proc/%s/comm",entry->d_name); + + int fd_comm = open(path, O_RDONLY); + if(fd_comm<0){ + continue; + } + char name[SIZE_LOCAL_BUF]; + int status; + if((status=read(fd_comm, name, SIZE_LOCAL_BUF))){ + name[status-1]=0; + if(strcmp(name,target)==0){ + pid_t valpid=(pid_t)atol(entry->d_name); + if(maxpid-1){ + write(fd_stdout,content,size_content); + close(fd_stdout); + return 0; + } + else{ + perror("sprintbashpid\n"); + return -1; + } + +}