|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2006
Messaggi: 81
|
[C] Controllare se un processo (non parente) e' ancora in esecuzione..
Ciao a tutti, sono un po' disorientato. Ho un esercizio
in cui mi si chiede di controllare che un processo (passato come parametro) e' ancora in esecuzione. Il problema e' che il controllante e il controllato non devono esser "parenti" Ho spulciato ovunque su internet, ma non c'e' apparentemente nessun modo di controllare lo stato di un processo se questi non e' un child rispetto al controllante... Spero in un piccolo aiuto, grazie mille, Blob |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Dovresti specificare il sistema operativo, visto che operazioni del genere (e in generale) sui processi sono system-dependent.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2006
Messaggi: 81
|
|
![]() |
![]() |
![]() |
#4 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() su Windows avendo i permessi necessari si può ![]() vediamo di eludere la limitazione imposta dall'esercizio: i due processi possono avere un padre comune? il padre comune può essere un programma scritto da te? |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Non invia alcun segnale, ma ritorna 0 se il processo è in esecuzione; errore (con errno=ESRCH) se il processo non esiste. nb devi poter inviare segnali al processo (è ok se sei root o se i due processi sono dello stesso profilo utente). Se non hai i diritti, errno vale EPERM e puoi concludere che...il processo esiste ![]() Come al solito sbagli.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 Ultima modifica di ilsensine : 18-01-2008 alle 12:58. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:39.