Использование 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;
}

Ответы (0 шт):