Condividi tramite


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

abort

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.

assert

Test per errori logici

System::Diagnostics::Debug::Assert

_ASSERT, _ASSERTE macro

Simile a assert, ma è disponibile solo nelle versioni di debug delle librerie di run-time

System::Diagnostics::Debug::Assert

atexit

Routine di pianificazione per l'esecuzione alla chiusura del programma

System::Diagnostics::Process::Exited

_beginthread, _beginthreadex

Crea un nuovo thread in un processo del sistema operativo Windows

System::Threading::Thread::Start

_cexit

Esegue le procedure di chiusura di exit (come svuotare il buffer), quindi restituisce il controllo al programma chiamante senza terminare il processo

System::Diagnostics::Process::CloseMainWindow

_c_exit

Esegue le procedure di chiusura di _exit, quindi restituisce il controllo al programma chiamante senza terminare il processo

System::Diagnostics::Process::CloseMainWindow

_cwait

Attende fino alla terminazione di un altro processo

System::Diagnostics::Process::WaitForExit

_endthread, _endthreadex

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.

_execl, _wexecl

Esegue un nuovo processo con un elenco di argomenti

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execle, _wexecle

Esegue un nuovo processo con un elenco di argomenti e l'ambiente specificato

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execlp, _wexeclp

Esegue un nuovo processo utilizzando la variabile PATH e un elenco di argomenti

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execlpe, _wexeclpe

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

_execv, _wexecv

Esegue un nuovo processo con un array di argomenti

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execve, _wexecve

Esegue un nuovo processo con un array di argomenti e l'ambiente specificato

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execvp, _wexecvp

Esegue un nuovo processo utilizzando la variabile PATH e un array di argomenti

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_execvpe, _wexecvpe

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

exit

Chiama le funzioni registrate da atexit e _onexit, svuota tutti i buffer, chiude tutti i file aperti e termina il processo

System::Diagnostics::Process::Kill

_exit

Termina il processo immediatamente senza chiamare atexit o _onexit oppure svuotare il buffer

System::Diagnostics::Process::Kill

getenv, _wgetenv, getenv_s, _wgetenv_s

Ottiene il valore della variabile di ambiente

System::Environment::GetEnvironmentVariable

_getpid

Ottiene il numero dell'ID del processo

System::Diagnostics::Process::Id

longjmp

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.

_onexit

Routine di pianificazione per l'esecuzione alla chiusura del programma; utilizzare per compatibilità con le versioni 7.0 di Microsoft C/C++ e precedenti

System::Diagnostics::Process::Exited

_pclose

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.

perror, _wperror

Stampa un messaggio di errore

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_pipe

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.

_popen, _wpopen

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.

_putenv, _wputenv, _putenv_s, _wputenv_s

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.

raise

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.

setjmp

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.

signal

Gestisce un segnale di interruzione

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_spawnl, _wspawnl

Crea ed esegue il nuovo processo con l'elenco di argomenti specificato

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_spawnle, _wspawnle

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

_spawnlp, _wspawnlp

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

_spawnlpe, _wspawnlpe

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

_spawnv, _wspawnv

Crea ed esegue il nuovo processo con l'array di argomenti specificato

Classe di System::Diagnostics::Process, Classe di System::Diagnostics::ProcessStartInfo

_spawnve, _wspawnve

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

_spawnvp, _wspawnvp

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

_spawnvpe, _wspawnvpe

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

system, _wsystem

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

Vedere anche

Riferimenti

Routine di runtime per categoria