Controllo processo e ambiente
Utilizzare le routine di controllo processi per avviare, arrestare e gestire i processi dall'interno di un programma. Utilizzare le routine di controllo dell'ambiente per ottenere modificare le informazioni sull'ambiente del sistema operativo.
Funzioni del controllo dell'ambiente e di processo
Routine |
Utilizzo |
Equivalente .NET Framework |
---|---|---|
interrompe il processo senza svuotare i buffer o chiamare funzioni registrate da atexit e _onexit |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Test per errori logici |
||
_ASSERT, _ASSERTE macro |
Simile a assert, ma è disponibile solo nelle versioni di debug delle librerie di run-time |
|
Routine di pianificazione per l'esecuzione alla chiusura del programma |
||
Crea un nuovo thread in un processo del sistema operativo Windows |
||
Esegue le procedure di chiusura di exit (come svuotare il buffer), quindi restituisce il controllo al programma chiamante senza terminare il processo |
||
Esegue le procedure di chiusura di _exit, quindi restituisce il controllo al programma chiamante senza terminare il processo |
||
Attende fino alla terminazione di un altro processo |
||
Termina un thread del sistema operativo Windows |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Esegue un nuovo processo con un elenco di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo con un elenco di argomenti e l'ambiente specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo utilizzando la variabile PATH e un elenco di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo utilizzando la variabile PATH, l'ambiente fornito e un elenco di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo con un array di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo con un array di argomenti e l'ambiente specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo utilizzando la variabile PATH e un array di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un nuovo processo utilizzando la variabile PATH, l'ambiente fornito e un array di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Chiama le funzioni registrate da atexit e _onexit, svuota tutti i buffer, chiude tutti i file aperti e termina il processo |
||
Termina il processo immediatamente senza chiamare atexit o _onexit oppure svuotare il buffer |
||
Ottiene il valore della variabile di ambiente |
||
Ottiene il numero dell'ID del processo |
||
Ripristina l'ambiente dello stack salvato; utilizzarlo per eseguire un goto non locale |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Routine di pianificazione per l'esecuzione alla chiusura del programma; utilizzare per compatibilità con le versioni 7.0 di Microsoft C/C++ e precedenti |
||
Attendere un nuovo processore dei comandi e chiude il flusso sulla pipe collegate |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Stampa un messaggio di errore |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Crea una pipe per la lettura e la scrittura |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Crea una pipe ed esegue il comando |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Aggiunge o modifica il valore della variabile di ambiente |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Invia un segnale al processo chiamante |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Salva l'ambiente dello stack; utilizzarlo per eseguire un gotonon locale |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Gestisce un segnale di interruzione |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Crea ed esegue il nuovo processo con l'elenco di argomenti specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue il nuovo processo con l'elenco di argomenti e l'ambiente specificati |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue un nuovo processo utilizzando la variabile PATH e l'elenco di argomenti specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue un nuovo processo utilizzando la variabile PATH, l'ambiente specificato e un elenco di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue il nuovo processo con l'array di argomenti specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue il nuovo processo con l'ambiente specificato e un array di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue un nuovo processo utilizzando la variabile PATH e l'elenco di array specificato |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Crea ed esegue un nuovo processo utilizzando la variabile PATH, l'ambiente specificato e un array di argomenti |
Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo |
|
Esegue un comando del sistema operativo |
Classe di System::Diagnostics::ProcessStartInfo, Classe di System::Diagnostics::Process |
Nel sistema operativo Windows, il processo figlio è equivalente al processo padre. Qualsiasi processo può utilizzare _cwait per attendere qualsiasi altro processo di cui è noto l'id processo.
La differenza tra le famiglie _exec e _spawn è che una funzione _spawn può restituire il controllo dal nuovo processo al processo chiamante. In una funzione _spawn, sia il processo chiamante che il nuovo processo sono presenti in memoria a meno che non sia specificato _P_OVERLAY. In una funzione _exec, il nuovo processo si sovrappone al processo chiamante, in modo che il controllo non torni al processo chiamante a meno che non si verifichi un errore nel tentativo di avviare l'esecuzione del nuovo processo.
Le differenze tra le funzioni della famiglia _exec come quelle della famiglia _spawn, includono il metodo di individuazione del file da eseguire come nuovo processo, il modulo in cui gli argomenti vengono passati al nuovo processo ed il metodo di impostazione dell'ambiente, come illustrato nella tabella seguente. Utilizzare una funzione che passa un elenco di argomenti quando il numero di argomenti è costante o è noto in fase di compilazione. Utilizzare una funzione che passa un puntatore a un array contenente gli argomenti quando il numero di argomenti viene determinato in fase di esecuzione. Le informazioni nella tabella seguente vengono applicati anche alle controparti a caratteri estesi delle funzioni _spawn e _exec.
Famiglie di funzioni _exec e _spawn
Funzioni |
Utilizza la variabile PATH per individuare il file |
Convenzione per il passaggio degli argomenti |
Impostazioni dell'ambiente |
---|---|---|---|
_execl, _spawnl |
No |
Elenco |
Ereditato dal processo chiamante |
_execle, _spawnle |
No |
Elenco |
Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomento |
_execlp, _spawnlp |
Yes |
Elenco |
Ereditato dal processo chiamante |
_execlpe, _spawnlpe |
Yes |
Elenco |
Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomento |
_execv, _spawnv |
No |
Matrice |
Ereditato dal processo chiamante |
_execve, _spawnve |
No |
Matrice |
Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomento |
_execvp, _spawnvp |
Yes |
Matrice |
Ereditato dal processo chiamante |
_execvpe, _spawnvpe |
Yes |
Matrice |
Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomento |