Documente Academic
Documente Profesional
Documente Cultură
1.Se considera urmatorul scenariu:Pe Desktop avem un folder Student, accesam acest folder si
deschidem terminalul de comanda.
a.Cum procedam pentru deschiderea terminalului? (0.5p)
Dupa ce am accesat folderul mergem sus la „tools” si acolo avem „Open terminal”.
b.Mai jos avem un program ex1.c care creeaza un proces fiu ce executa programul numit ex2.c
Procesul parinte asteapta terminarea fiului si afiseaza pid-ul procesului fiu si starea cu care s-a
terminat acesta (in zecimal si hexazecimal). (3p)
Completati spatiile lipsa din program
/* [ex1.c] */
#include <stdio.h>
#include <sys/types.h> else
#include <sys/wait.h>
int main() …exec(“ex2”,0);/*Aici este
{ executat ex2.c*/
int pid, stare; printf("Parinte: dupa fork()\n");
printf("Parinte: inainte de printf("\tId proces fiu=………;
fork()\n"); Terminat cu valoarea %d=%x\n",
if ((pid=fork()!=0) pid., stare, stare );
wait(&stare); }
c.Scrieti comenziile pentru compilarea si executia lui ex1.c. (0.75p)
>./ex1.c
./ex1 &
e.Mai jos avem programul ex2.c unde se afisează pid-ul procesului și proprietarul procesului (3p)
/* [ex2.c] */
#include <stdio.h> printf("Fiul: %d se termina\n", pid);
#include <sys/types.h> printf("\n\nProprietarul procesului: UID=%d,
#include <sys/wait.h> GID=%d\n", getuit(), getegid());
int main() { int pid; .......................................// terminare normală;
printf("Fiul: incepe executia \n");
pid=getpid();