Controllo processo e ambienteProcess and Environment Control

Le routine di controllo dei processi consentono di avviare, arrestare e gestire i processi dall'interno di un programma,Use the process-control routines to start, stop, and manage processes from within a program. mentre le routine di controllo dell'ambiente consentono di ottenere e modificare le informazioni relative all'ambiente del sistema operativo.Use the environment-control routines to get and change information about the operating-system environment.

Funzioni di controllo dei processi e dell'ambienteProcess and Environment Control Functions

RoutineRoutine UsoUse
abortabort Interrompe il processo senza svuotare i buffer né chiamare funzioni registrate da atexit e _onexitAbort process without flushing buffers or calling functions registered by atexit and _onexit
assertassert Verifica la presenza di errori logiciTest for logic error
Macro _ASSERT, _ASSERTE_ASSERT, _ASSERTE macros Simile a assert, ma è disponibile solo nelle versioni di debug delle librerie di runtimeSimilar to assert, but only available in the debug versions of the run-time libraries
atexitatexit Routine di pianificazione per l'esecuzione alla chiusura del programmaSchedule routines for execution at program termination
_beginthread, _beginthreadex_beginthread, _beginthreadex Crea un nuovo thread in un processo del sistema operativo WindowsCreate a new thread on a Windows operating system process
_cexit_cexit Esegue le routine di terminazione di exit, ad esempio lo svuotamento del buffer, e quindi restituisce il controllo al programma chiamante senza terminare il processoPerform exit termination procedures (such as flushing buffers), then return control to calling program without terminating process
_c_exit_c_exit Esegue le routine di terminazione di _exit e quindi restituisce il controllo al programma chiamante senza terminare il processoPerform _exit termination procedures, then return control to calling program without terminating process
_cwait_cwait Attende fino alla terminazione di un altro processoWait until another process terminates
_endthread, _endthreadex_endthread, _endthreadex Termina un thread del sistema operativo WindowsTerminate a Windows operating system thread
_execl, _wexecl_execl, _wexecl Esegue un nuovo processo con un elenco di argomentiExecute new process with argument list
_execle, _wexecle_execle, _wexecle Esegue un nuovo processo con un elenco di argomenti e l'ambiente specificatoExecute new process with argument list and given environment
_execlp, _wexeclp_execlp, _wexeclp Esegue un nuovo processo usando la variabile PATH e un elenco di argomentiExecute new process using PATH variable and argument list
_execlpe, _wexeclpe_execlpe, _wexeclpe Esegue un nuovo processo usando la variabile PATH, l'ambiente specificato e un elenco di argomentiExecute new process using PATH variable, given environment, and argument list
_execv, _wexecv_execv, _wexecv Esegue un nuovo processo con una matrice di argomentiExecute new process with argument array
_execve, _wexecve_execve, _wexecve Esegue un nuovo processo con una matrice di argomenti e l'ambiente specificatoExecute new process with argument array and given environment
_execvp, _wexecvp_execvp, _wexecvp Esegue un nuovo processo usando la variabile PATH e una matrice di argomentiExecute new process using PATH variable and argument array
_execvpe, _wexecvpe_execvpe, _wexecvpe Esegue un nuovo processo usando la variabile PATH, l'ambiente specificato e una matrice di argomentiExecute new process using PATH variable, given environment, and argument array
exitexit Chiama le funzioni registrate da atexit e _onexit, svuota tutti i buffer, chiude tutti i file aperti e termina il processoCall functions registered by atexit and _onexit, flush all buffers, close all open files, and terminate process
_exit_exit Termina il processo immediatamente, senza chiamare atexit o _onexit oppure senza svuotare il bufferTerminate process immediately without calling atexit or _onexit or flushing buffers
getenv, _wgetenv, getenv_s, _wgetenv_sgetenv, _wgetenv, getenv_s, _wgetenv_s Ottiene il valore della variabile di ambienteGet value of environment variable
_getpid_getpid Ottiene il numero dell'ID del processoGet process ID number
longjmplongjmp Ripristina l'ambiente dello stack salvato; usarla per eseguire un goto non localeRestore saved stack environment; use it to execute a nonlocal goto
_onexit_onexit Pianifica le routine per l'esecuzione alla chiusura del programma; usarla per assicurare la compatibilità con Microsoft C/C++ 7.0 e versioni precedentiSchedule routines for execution at program termination; use for compatibility with Microsoft C/C++ version 7.0 and earlier
_pclose_pclose Attende un nuovo processore dei comandi e chiude il flusso sulla pipe collegataWait for new command processor and close stream on associated pipe
perror, _wperrorperror, _wperror Stampa un messaggio di errorePrint error message
_pipe_pipe Crea una pipe per la lettura e la scritturaCreate pipe for reading and writing
_popen, _wpopen_popen, _wpopen Crea una pipe ed esegue il comandoCreate pipe and execute command
_putenv, _wputenv, _putenv_s, _wputenv_s_putenv, _wputenv, _putenv_s, _wputenv_s Aggiunge o modifica il valore della variabile di ambienteAdd or change value of environment variable
raiseraise Invia un segnale al processo chiamanteSend signal to calling process
setjmpsetjmp Salva l'ambiente dello stack; usarla per eseguire un goto non localeSave stack environment; use to execute non local goto
signalsignal Gestisce un segnale di interruzioneHandle interrupt signal
_spawnl, _wspawnl_spawnl, _wspawnl Crea ed esegue il nuovo processo con l'elenco di argomenti specificatoCreate and execute new process with specified argument list
_spawnle, _wspawnle_spawnle, _wspawnle Crea ed esegue il nuovo processo con l'elenco di argomenti e l'ambiente specificatiCreate and execute new process with specified argument list and environment
_spawnlp, _wspawnlp_spawnlp, _wspawnlp Crea ed esegue un nuovo processo usando la variabile PATH e l'elenco di argomenti specificatoCreate and execute new process using PATH variable and specified argument list
_spawnlpe, _wspawnlpe_spawnlpe, _wspawnlpe Crea ed esegue un nuovo processo usando la variabile PATH, l'ambiente specificato e un elenco di argomentiCreate and execute new process using PATH variable, specified environment, and argument list
_spawnv, _wspawnv_spawnv, _wspawnv Crea ed esegue il nuovo processo con la matrice di argomenti specificataCreate and execute new process with specified argument array
_spawnve, _wspawnve_spawnve, _wspawnve Crea ed esegue il nuovo processo con l'ambiente specificato e una matrice di argomentiCreate and execute new process with specified environment and argument array
_spawnvp, _wspawnvp_spawnvp, _wspawnvp Crea ed esegue un nuovo processo usando la variabile PATH e la matrice di argomenti specificataCreate and execute new process using PATH variable and specified argument array
_spawnvpe, _wspawnvpe_spawnvpe, _wspawnvpe Crea ed esegue un nuovo processo usando la variabile PATH, l'ambiente specificato e una matrice di argomentiCreate and execute new process using PATH variable, specified environment, and argument array
system, _wsystemsystem, _wsystem Esegue un comando del sistema operativoExecute operating-system command

Nel sistema operativo Windows, il processo figlio è equivalente al processo padre.In the Windows operating system, the spawned process is equivalent to the spawning process. Qualsiasi processo può usare _cwait per attendere un altro processo di cui è noto l'ID.Any process can use _cwait to wait for any other process for which the process ID is known.

La differenza tra le famiglie _exec e _spawn consiste nel fatto che una funzione _spawn può restituire il controllo dal nuovo processo al processo chiamante.The difference between the _exec and _spawn families is that a _spawn function can return control from the new process to the calling process. 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 a _spawn function, both the calling process and the new process are present in memory unless _P_OVERLAY is specified. In una funzione _exec, il nuovo processo si sovrappone al processo chiamante, in modo che il controllo non torni a quest'ultimo a meno che non si verifichi un errore durante il tentativo di avviare l'esecuzione del nuovo processo.In an _exec function, the new process overlays the calling process, so control cannot return to the calling process unless an error occurs in the attempt to start execution of the new process.

Le differenze tra le funzioni della famiglia _exec, come tra quelle della famiglia _spawn, includono il metodo di individuazione del file da eseguire come nuovo processo, il modo in cui gli argomenti vengono passati al nuovo processo e il metodo di impostazione dell'ambiente, come illustrato nella tabella seguente.The differences among the functions in the _exec family, as well as among those in the _spawn family, involve the method of locating the file to be executed as the new process, the form in which arguments are passed to the new process, and the method of setting the environment, as shown in the following table. Usare una funzione che passa un elenco di argomenti quando il numero di argomenti è costante o è noto in fase di esecuzione.Use a function that passes an argument list when the number of arguments is constant or is known at compile time. Usare una funzione che passa un puntatore a una matrice contenente gli argomenti quando il numero di argomenti viene determinato in fase di esecuzione.Use a function that passes a pointer to an array containing the arguments when the number of arguments is to be determined at run time. Le informazioni riportate nella tabella seguente vengono applicate anche alle controparti con caratteri wide delle funzioni _spawn e _exec.The information in the following table also applies to the wide-character counterparts of the _spawn and _exec functions.

Famiglie di funzioni _spawn e _exec_spawn and _exec Function Families

FunzioniFunctions Uso della variabile PATH per individuare il fileUse PATH variable to locate file Convenzione per il passaggio degli argomentiArgument-passing convention Impostazioni dell'ambienteEnvironment settings
_execl, _spawnl NoNo ElencoList Ereditate dal processo chiamanteInherited from calling process
_execle, _spawnle NoNo ElencoList Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomentoPointer to environment table for new process passed as last argument
_execlp, _spawnlp Yes ElencoList Ereditate dal processo chiamanteInherited from calling process
_execlpe, _spawnlpe Yes ElencoList Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomentoPointer to environment table for new process passed as last argument
_execv, _spawnv NoNo MatriceArray Ereditate dal processo chiamanteInherited from calling process
_execve, _spawnve NoNo MatriceArray Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomentoPointer to environment table for new process passed as last argument
_execvp, _spawnvp Yes MatriceArray Ereditate dal processo chiamanteInherited from calling process
_execvpe, _spawnvpe Yes MatriceArray Puntatore alla tabella dell'ambiente per il nuovo processo passato come ultimo argomentoPointer to environment table for new process passed as last argument

Vedere ancheSee Also

Routine di runtime per categoriaRun-Time Routines by Category