Bagikan melalui


Kontrol proses dan lingkungan

Gunakan rutinitas kontrol proses untuk memulai, menghentikan, dan mengelola proses dari dalam program. Gunakan rutinitas kontrol lingkungan untuk mendapatkan dan mengubah informasi tentang lingkungan sistem operasi.

Fungsi kontrol proses dan lingkungan

Rutin Gunakan
abort Membatalkan proses tanpa menyiram buffer atau fungsi panggilan yang didaftarkan oleh atexit dan _onexit
assert Uji kesalahan logika
_ASSERT, _ASSERTE makro Mirip assertdengan , tetapi hanya tersedia di versi debug pustaka run-time
atexit Menjadwalkan rutinitas untuk eksekusi pada penghentian program
_beginthread, _beginthreadex Membuat utas baru pada proses sistem operasi Windows
_cexit Lakukan exit prosedur penghentian (seperti buffer pembilasan), lalu kembalikan kontrol ke program panggilan tanpa menghentikan proses
_c_exit Lakukan _exit prosedur penghentian, lalu kembalikan kontrol ke program panggilan tanpa menghentikan proses
_cwait Tunggu hingga proses lain berakhir
_endthread, _endthreadex Menghentikan utas sistem operasi Windows
_execl, _wexecl Jalankan proses baru dengan daftar argumen
_execle, _wexecle Jalankan proses baru dengan daftar argumen dan lingkungan yang diberikan
_execlp, _wexeclp Jalankan proses baru menggunakan PATH variabel dan daftar argumen
_execlpe, _wexeclpe Jalankan proses baru menggunakan PATH variabel, lingkungan tertentu, dan daftar argumen
_execv, _wexecv Jalankan proses baru dengan array argumen
_execve, _wexecve Jalankan proses baru dengan array argumen dan lingkungan tertentu
_execvp, _wexecvp Jalankan proses baru menggunakan PATH array variabel dan argumen
_execvpe, _wexecvpe Jalankan proses baru menggunakan PATH variabel, lingkungan tertentu, dan array argumen
exit Fungsi panggilan yang didaftarkan oleh atexit dan _onexit, bersihkan semua buffer, tutup semua file yang terbuka, dan hentikan proses
_exit Segera hentikan proses tanpa memanggil atexit atau _onexit atau menghapus buffer
getenv, _wgetenv, getenv_s, _wgetenv_s Mendapatkan nilai variabel lingkungan
_getpid Mendapatkan nomor ID proses
longjmp Pulihkan lingkungan tumpukan yang disimpan; menggunakannya untuk menjalankan nonlokal goto
_onexit Menjadwalkan rutinitas untuk eksekusi pada penghentian program; gunakan untuk kompatibilitas dengan Microsoft C/C++ versi 7.0 dan yang lebih lama
_pclose Tunggu prosesor perintah baru dan tutup aliran pada pipa terkait
perror, _wperror Mencetak pesan kesalahan
_pipe Membuat pipa untuk membaca dan menulis
_popen, _wpopen Membuat pipa dan menjalankan perintah
_putenv, _wputenv, _putenv_s, _wputenv_s Menambahkan atau mengubah nilai variabel lingkungan
raise Mengirim sinyal ke proses panggilan
setjmp Simpan lingkungan tumpukan; gunakan untuk menjalankan non lokal goto
signal Menangani sinyal interupsi
_spawnl, _wspawnl Membuat dan menjalankan proses baru dengan daftar argumen yang ditentukan
_spawnle, _wspawnle Membuat dan menjalankan proses baru dengan daftar argumen dan lingkungan yang ditentukan
_spawnlp, _wspawnlp Membuat dan menjalankan proses baru menggunakan PATH variabel dan daftar argumen yang ditentukan
_spawnlpe, _wspawnlpe Membuat dan menjalankan proses baru menggunakan PATH variabel, lingkungan yang ditentukan, dan daftar argumen
_spawnv, _wspawnv Membuat dan menjalankan proses baru dengan array argumen yang ditentukan
_spawnve, _wspawnve Membuat dan menjalankan proses baru dengan lingkungan dan array argumen yang ditentukan
_spawnvp, _wspawnvp Membuat dan menjalankan proses baru menggunakan PATH variabel dan array argumen yang ditentukan
_spawnvpe, _wspawnvpe Membuat dan menjalankan proses baru menggunakan PATH variabel, lingkungan yang ditentukan, dan array argumen
system, _wsystem Menjalankan perintah sistem operasi

Dalam sistem operasi Windows, proses yang ditelurkan setara dengan proses pemijahan. Proses apa pun dapat digunakan _cwait untuk menunggu proses lain yang ID prosesnya diketahui.

Perbedaan antara _exec keluarga dan _spawn adalah bahwa _spawn fungsi dapat mengembalikan kontrol dari proses baru ke proses panggilan. Dalam fungsi _spawn , proses panggilan dan proses baru ada dalam memori kecuali _P_OVERLAY ditentukan. Dalam fungsi _exec , proses baru melapisi proses panggilan, sehingga kontrol tidak dapat kembali ke proses panggilan kecuali terjadi kesalahan dalam upaya untuk memulai eksekusi proses baru.

Perbedaan di antara fungsi dalam _exec keluarga dan _spawn melibatkan metode menemukan file yang akan dijalankan sebagai proses baru, formulir di mana argumen diteruskan ke proses baru, dan metode pengaturan lingkungan, seperti yang ditunjukkan dalam tabel berikut. Gunakan fungsi yang meneruskan daftar argumen saat jumlah argumen konstanta atau diketahui pada waktu kompilasi. Gunakan fungsi yang meneruskan penunjuk ke array yang berisi argumen saat jumlah argumen akan ditentukan pada waktu proses. Informasi dalam tabel berikut juga berlaku untuk rekan karakter luas dari _spawn fungsi dan _exec .

_spawn dan _exec Keluarga Fungsi

Fungsi Gunakan PATH variabel untuk menemukan file Konvensi pengoperasian argumen Pengaturan lingkungan
_execl, _spawnl Tidak Daftar Diwarisi dari proses panggilan
_execle, _spawnle Tidak Daftar Penunjuk ke tabel lingkungan untuk proses baru yang diteruskan sebagai argumen terakhir
_execlp, _spawnlp Ya Daftar Diwarisi dari proses panggilan
_execvpe, _spawnvpe Ya Array Penunjuk ke tabel lingkungan untuk proses baru yang diteruskan sebagai argumen terakhir
_execlpe, _spawnlpe Ya Daftar Penunjuk ke tabel lingkungan untuk proses baru yang diteruskan sebagai argumen terakhir
_execv, _spawnv Tidak Array Diwarisi dari proses panggilan
_execve, _spawnve Tidak Array Penunjuk ke tabel lingkungan untuk proses baru yang diteruskan sebagai argumen terakhir
_execvp, _spawnvp Ya Array Diwarisi dari proses panggilan

Baca juga

Rutinitas runtime Universal C menurut kategori