Atrybuty procesów.

0

Cześć, szukam kogoś kto pomoże mi napisać dwa programiki w C (Linux). Wszelka pomoc mile widziana.

Napisz program, który pokazuje, które atrybuty procesu macierzystego są dziedziczone przez proces potomny
uruchomiony za pomocą funkcji fork(), które zaś otrzymują nową wartość.

Napisz program, który pokazuje, które atrybuty procesu są zachowane przez proces po wykonaniu funkcji exec().

0

i czego konkretnie nie wiesz?

0

Mówiąc szczerze to już przy samym wypisaniu PID mam problem

pomysl jest taki

 
int main(int argc, char * argv[], char *envp[])
{
    pid_t pid_parent, pid_child;
   
 switch(fork())
    {
    case -1:
    //jesteśmy w rodzicu, ale niepowodzenie

    case 0:
    //jesteśmy w dziecku
    pid_child=getpid();
    printf("dziecko: %d\n",pid_child);

    default:
        //jesteśmy w rodzicu
        pid_parent=getpid();
        printf("rodzic: %d\n",pid_parent);
    }

    //printf("pid rodzica: %d, pid dziecka: %d\n",pid_parent, pid_child);
}

oczywiście nie działa, leżę już na samym początku, a gdzie mowa o:

Potomek dziedziczy z procesu potomnego wiele własności:
rzeczywisty identyfikator użytkownika, rzeczywisty identyfikator grupy, obowiązujący identyfikator użytkownika, obowiązujący identyfikator grupy,
identyfikatory dodatkowych grup,
identyfikator sesji,
terminal sterujący,
sygnalizator ustanowienia identyfikatora użytkownika oraz sygnalizator ustanowienia identyfikatora grupy,
deskryptory otwartych plików (są kopiowane)
bieżący katalog roboczy,
katalog główny,
maskę tworzenia plików,
maskę sygnałów oraz dyspozycje obsługi sygnałów,
sygnalizator zamykania przy wywołaniu funkcji exec (close-on-exec) dla wszystkich otwartych deskryptorów plików,
środowisko,
przyłączone segmenty pamięci wspólnej,
ograniczenia zasobów systemowych.
Są jednak pewne różnice między procesem macierzystym a potomnym:
wartość powrotu z funkcji fork,
różne identyfikatory procesów,
inne identyfikatory procesów macierzystych - w procesie potomnym jest to identyfikator procesu macierzystego; w procesie macierzystym identyfikator procesu macierzystego nie zmienia się,
w procesie potomnym wartości tms_utime, tms_cutime i tms_ustime są równe 0,
potomek nie dziedziczy rygli plików, ustalonych w procesie macierzystym,
w procesie potomnym są zerowane wszystkie zaległe alarmy,
w procesie potomnym jest zerowany zbiór zaległych sygnałów.

temat jest na sobotę do zrobienia i od tych dwóch zadań zależy to czy zaliczę semestr czy nie, błagam o wszelkie informacje. Czytam dokumentację, wykłady i ... po prostu nie jestem w stanie tego zrobić. Może z Waszą pomocą jakoś przebrnę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1