PDA

View Full Version : [C\C++] Processi in Windows


Gino+89+
25-02-2007, 20:05
Quali sono le funzioni di generazione e comunicazione tra processi in C\C++?? Solitamente le uso in Linux ma sotto Windows sono totalmente inesperto..
I processi sono generati per clonazione anche sotto Windows? Le funzioni (e le forme) di comunicazione tra processi (in win) sono totalmente diverse da quelle di linux? Mi potreste linkare qualche sito dove posso guardarne i prototipi ed il funzionamento? (sempre riguardo a win)
Ringrazio anticipatamente per eventuali risposte.

71104
25-02-2007, 20:37
per quanto riguarda la generazione esistono due primitive fondamentali: CreateProcess (http://msdn2.microsoft.com/en-us/library/ms682425.aspx) e CreateProcessAsUser (http://msdn2.microsoft.com/en-us/library/ms682429.aspx). molto probabilmente a te basta la prima.

per quanto riguarda invece la IPC, i meccanismi messi a disposizione da Windows sono i seguenti:
- file mapping objects (http://msdn2.microsoft.com/en-us/library/aa366556.aspx)
- anonymous pipes (http://msdn2.microsoft.com/en-us/library/aa365139.aspx)
- named pipes (http://msdn2.microsoft.com/en-us/library/aa365590.aspx)
- mailslots (http://msdn2.microsoft.com/en-us/library/aa365576.aspx)
- sockets (http://msdn2.microsoft.com/en-us/library/ms740673.aspx), sono molto simili a quelli di Berkeley ma ci sono alcune piccole differenze
- messaggio WM_COPYDATA (http://msdn2.microsoft.com/en-us/library/ms649011.aspx)
- la clipboard (http://msdn2.microsoft.com/en-us/library/ms648709.aspx) :)
- DDE (http://msdn2.microsoft.com/en-us/library/ms648711.aspx), roba vecchia rimasta in uso ormai praticamente solo dalla shell grafica (è il meccanismo usato per es. per aprire un file quando ci si fa doppio clic, sebbene sia ancora in uso anche l'altro meccanismo del semplice passaggio parametri alla command line)

come sito di riferimento sempre e solo MSDN2 (http://msdn2.microsoft.com/en-us/library/default.aspx) ;)