Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
ubytzika_senzuala 22 ani
Femeie
22 ani
Vrancea
cauta Barbat
22 - 45 ani
Mihai Sprinceana / SO Linux&Unix / Functiile setpgid,getpgid,setpgrp,getpgrp (apeluri sistem) Moderat de Cristy89, Houssey, cr3us, fireratbat, profu.info, sade5000
Autor
Mesaj Pagini: 1
Cristy89
Moderator

Inregistrat: acum 15 ani
Postari: 26
setpgid, getpgid, setpgrp, getpgrp - setare /preluare grup de procese   

Este necesar sa aveti inclus fisierul header(biblioteca):

#include <unistd.h>

Forma generala:

int setpgid(pid_t pid, pid_t pgid);
pid_t getpgid(pid_t pid);
int setpgrp(void);
pid_t getpgrp(void); 


setpgid - seteaza id-ul grupului de procese al procesului specificat prin pid catre pgid. Daca pid(process id) este =0 atunci id-ul procesului pt.procesul curent este folosit. Daca pgid =0 id-ul procesului specificat prin pid este folosit.

Daca setpgid este folosit pentru a muta un proces dintr-un grup de procese catre alt grup de procese ambele grupuri de procese trebuie sa fie parte ale aceleiasi sesiuni. In acest caz pgid specifica grupul de procese existente care se vor alatura si printre altele  id-ului sesiunii trebuie sa se potriveasca cu id-ul sesiunii proceselor ce se alatura.


getpgid- intoarce id-ul grupului de procese al procesului specificat prin pid. Daca pid =0 id-ul procesului pt.procesul curent este folosit.


Apelul setpgrp() este echivalent cu setpgid. Acelasi lucru este valabil si in cazul getpgrp() care este echivalent cu getpgid(). Fiecare grup de procese este membru al unei sesiuni si fiecare proces este membru al sesiunii al carei grup de procese este membru.

Grupurile de procese sunt folosite pt.distribuirea semnalelor si pt.terminal pentru a satisface cererile pentru intrari. (vezi functiile pt.terminal ale grupurilor de procese TIOCGPGRP si TIOCSPGRP).



Daca iesirea unui proces cauzeaza ca grupul de procese sa devina orfan si orice membru al noului proces orfan din grupul de procese este oprit atunci semnalul SIGHUP se produce si este urmat de semnalul SIGCONT care va trimite fiecarui proces din grupul de procese orfan.


In caz de succes setpgrp intoarce valoarea 0. In caz de eroare valoarea -1 este intoarsa sau este setat un mesaj de eroare corespunzator.

getpgid- intoarce un grup de procese in caz de succes. In caz de eroare valoarea -1 este intoarsa sau este setat un mesaj de eroare corespunzator.


getpgrp - intotdeauna va intoarce grupul curent de procese


Erori:


EINVAL - pgid <0 (setpgid, setpgrp)

EACCES - s-a produs o incercare de schimbare a id-ului grupului de procese
   
EPERM - s-a produs o incercare de a muta un proces intr-un grup de procese ce se afla intr-o sesiune diferita

ESRCH  - pentru getpgid -pid(process id-id-ul procesului) nu se potriveste cu nici un proces
- pentru setpgid- pid(process id-id-ul procesului) nu este procesul curent si nici un fiu al procesului curent


pus acum 15 ani
   
Pagini: 1  

Mergi la