PDA

Visualizza la versione completa : [linux tcp/ip && C] pid


{-_-}
30-03-2008, 17:52
ho due domande riguardo il pid.

1) perchè il pid lo devo definire con pid_t pid e non con int pid?

2)perchè nei server paralleli servono due valori di pid?

grazie

oregon
30-03-2008, 18:45
Originariamente inviato da {-_-}
1) perchè il pid lo devo definire con pid_t pid e non con int pid?


In questo modo il tipo pid_t e' indipendente dall'int ...



2)perchè nei server paralleli servono due valori di pid?


Server paralleli ?

{-_-}
30-03-2008, 19:58
1) ma il tipo pid_t non è anchesso un int?


2) i server sono paralleli , ma quello che non capisco è : nei programmi si usano due pid se sono server paralleli, ma in un server parallelo possono esseerci mille pid, e allora perchè due e non quattro, cento , mille?

grazie

MItaly
30-03-2008, 20:53
1) Sì, ma su un'ipotetica altra piattaforma UNIX-like in cui i PID sono interi di un altro genere (ad esempio interi a 64 bit, dei long long int) il tuo programma non si riesce a compilare; usando invece il tipo pid_t hai la garanzia di usare sempre il tipo corretto per i PID (dal momento che il typedef di pid_t è inserito in un header scritto per il sistema operativo su cui stai compilando). Inoltre usando il tipo pid_t fai capire subito a chi legge il codice che in quella variabile verrà memorizzato un PID.
2) Eh? :confused:

oregon
30-03-2008, 21:30
Originariamente inviato da {-_-}
1) ma il tipo pid_t non è anchesso un int?

Nel TUO sistema ... nel mio e' un valore a 64 bit ... ma si chiama COMUNQUE pid_t



2) i server sono paralleli , ma quello che non capisco è : nei programmi si usano due pid se sono server paralleli, ma in un server parallelo possono esseerci mille pid, e allora perchè due e non quattro, cento , mille?


Confermo MITaly ... eh ??

{-_-}
30-03-2008, 22:32
allora per la prima domanda ok.

per la seconda , è stato un calo di zuccheri.

supponete che io ho due pid_t in un server parallolo, pid1 e pid2, accetto la prima connesisone su pid1, faccio una fork e poi come gestisco pid1 pid2 per le connessioni successive. da quanto ho capito userò pid1 per accettare nuove connessioni e pid2 per gestire le attuali, ma allora non basta un solo valore di pid_t ?
mi interessa la parte logica della questione, perchè la parte programmativa l'ho capita.
grazie

menphisx
31-03-2008, 02:27
Per server parallelo intendi server concorrente ?
pid1 e pid2 contengono l'id del processo, niente di più.

billiejoex
31-03-2008, 19:48
Originariamente inviato da {-_-}
allora per la prima domanda ok.

per la seconda , è stato un calo di zuccheri.

supponete che io ho due pid_t in un server parallolo, pid1 e pid2, accetto la prima connesisone su pid1, faccio una fork e poi come gestisco pid1 pid2 per le connessioni successive. da quanto ho capito userò pid1 per accettare nuove connessioni e pid2 per gestire le attuali, ma allora non basta un solo valore di pid_t ?
mi interessa la parte logica della questione, perchè la parte programmativa l'ho capita.
grazie

A tutti, invece, interesserebbe che tu ti sforzassi di scrivere un po' meglio e possibilmente farti capire. ;)

Loading