Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ottenere pid
Forum - C/C++ - Ottenere pid - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:16
Domenica, 27/06/2010
Non è detto che esista una istanza "padre" ...

In ogni caso, parti da questo esempio di Microsoft

Enumerating All Processes
http://msdn.microsoft.com/en-us/library/ms682623(v=VS.85). ...

che li enumera tutti.

Modifica il codice (impostando i controlli che ti servono) per fare quello che chiedi.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:59
Lunedì, 28/06/2010
Testo quotato

Postato originariamente da jaco94++:

La prima aperta quindi l'istanza padre  



il concetto di processo padre e processi figli non esiste in Windows, è un concetto di Unix. Semmai puoi avere un processo con un thread iniziale (quello che parte dal Winmain), e tanti thread secondari, ma anche qui non c'è una vera gerarchia. Comunque il codice postato da "nessuno" dovrebbe risolvere il tuo problema ;)

PM Quote
Avatar
Saladino (Member)
Pro


Messaggi: 90
Iscritto: 30/05/2010

Segnala al moderatore
Postato alle 16:11
Lunedì, 28/06/2010
Scusa Kane ,che vuol dire processo padre?
Non sapevo che esistesse una cosa del genere.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 16:24
Lunedì, 28/06/2010
Semplificando, su Unix i processi sono organizzati ad albero. Ogni processo può generare dei figli tramite la coppia di syscalls fork ed exec.

Ad esempio se da shell digito startkde e poi da kde apro firefox, avrò una gerarchia più o meno così: Init (processo padre di tutti) -> tty0 (la console) -> bash (la shell) -> xorg (l'ambiente grafico) -> kde ( il desktop environment) -> firefox (l'applicazione)

A dire il vero la gerarchia che ho descritto è del tutto immaginaria (sebbene simile alla realtà), ma serve per dare un'idea di cosa si intende per "parentela tra processi".

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:25
Lunedì, 28/06/2010

Il processo padre (Parent Process) è il processo che ha creato un determinato processo.

L'identificatore del processo è il cosiddetto PID, l'identificatore del suo processo Parent è il PPID. Tutto questo in Linux.

Con Windows ...

@TheKabeB ... Non è del tutti vero che il concetto non esista in Windows. Nella struttura

PROCESSENTRY32

potrai infatti trovare l'elemento

DWORD th32ParentProcessID;
The identifier of the process that created this process (its parent process).

che è un po' il PPID di Linux. Detto questo, esistono tante differenze rispetto alla gestione dei processi tra i due SO ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 16:29
Lunedì, 28/06/2010
non conosco i dettagli di Windows... ma di certo i processi non hanno strette relazioni tra loro. Su Unix se killo un processo, tutti i suoi figli diventeranno "orfani". Dopo un certo lasso di tempo, Init adotterà tutti gli orfani del sistema e invierà loro un SIGKILL.

Su Windows non so come funziona, ma dubito che il meccanismo sia analogo...

Ultima modifica effettuata da TheKaneB il 28/06/2010 alle 16:29
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:43
Lunedì, 28/06/2010

Anche su Windows se killi un processo "padre" avrai un sacco di "orfani" sulla coscienza ... :-)

Ma rimarranno orfani ... non c'è un meccanismo di "garbage collection" e gli orfani vanno killati manualmente.



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 16:47
Lunedì, 28/06/2010
poveretti... tanta violenza per nulla... :D

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo