l33t/proc.h

49 lines
1.0 KiB
C

#ifndef PROC_H
#define PROC_H
#include "subprocess.h"
#include "io.h"
#include "str.h"
#include <stdbool.h>
#include <stdlib.h>
#define PROC_UPDATE_DELAY_MS 200
int process_count(char * name){
char command[1024] = {0};
command[0] = 0;
strcpy(command,"ps aux");
FILE * pipe = popen(command, "r");
if(pipe == NULL){
perror("popen");
exit(EXIT_FAILURE);
}
char buffer[1024*1024] = {0};
int count = 0;
while(fgets(buffer,sizeof(buffer), pipe) != NULL){
if(count_word_occurences(buffer,name))
count++;
}
int status = pclose(pipe);
if(status == -1){
perror("pclose");
}
return count;
//WEXITSTATUS(status)
}
void wait_for_process_count(char * name, uint count){
while(process_count(name) != count){
msleep(PROC_UPDATE_DELAY_MS);
}
}
void wait_new_process(char * name){
int original_process_count = process_count(name);
while(process_count(name) < original_process_count + 1){
msleep(PROC_UPDATE_DELAY_MS);
}
}
#endif