Использование system("ps | grep") в программе
Мне нужно вывести информацию о процессе по самому адресному пространству (я могу перепутать название - по первым 4 цифрам процесса) с помощью команд "ps" и "grep".
Я не могу передать индекс в grep как var - но мне очень хотелось бы понять, как это сделать и возможно ли это.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
#define MAX_CATEGORY_NUMBER_INT 11
#define QUANTITY_DIGIT 10
int Determination_Quantity_Digit(int temp)
{
int variable_comparison = 1;
for(short int i = 1; i < MAX_CATEGORY_NUMBER_INT; i++)
{
variable_comparison = (variable_comparison * QUANTITY_DIGIT);
if(temp < variable_comparison)
{
return i;
}
}
return 0;
}
int Convert_Index(char** index, int temp)
{
int category_number = 0;
category_number = Determination_Quantity_Digit(temp);
*index = (char*) calloc (category_number, sizeof(char));
for(short int i = category_number - 1; i >= 0; i--)
{
for(short int j = 0; j < QUANTITY_DIGIT; j++)
{
if((temp % QUANTITY_DIGIT) == j)
{
(*index)[i] = ('0' + j);
break;
}
}
temp = (temp / QUANTITY_DIGIT);
}
printf("\n");
return 0;
}
int main()
{
pid_t parent_pid;
pid_t child_pid;
char* index = NULL;
int error_flag = 0b0;
int temp = 0;
temp = (int)getpid();
error_flag = (error_flag | Convert_Index(&index, temp));
printf("\n");
system("ps | grep -o \"^$index\"");//main problem in \"^$index\"
return error_flag;
}