Nama
tunggu, tunggu - tunggu proses penghentian
Ringkasan
#include pid_t menunggu (int * status );pid_t waitpid (pid_t pid , int * status , int pilihan );
ItuTunggu fungsi menunda pelaksanaan proses saat ini sampai seorang anak telah keluar, atau sampai sinyal disampaikan yang beraksi untuk mengakhiri proses saat ini atau memanggil fungsi penanganan sinyal. Jika seorang anak sudah keluar pada saat panggilan (apa yang disebut proses "zombie"), fungsi segera kembali. Sumber daya sistem apa pun yang digunakan oleh anak dibebaskan. Ituwaitpid fungsi menunda pelaksanaan proses saat ini sampai anak seperti yang ditentukan oleh pid argumen telah keluar, atau sampai sinyal disampaikan yang aksinya untuk mengakhiri proses saat ini atau memanggil fungsi penanganan sinyal. Jika seorang anak seperti yang diminta oleh pid sudah keluar pada saat panggilan (apa yang disebut "zombie" proses), fungsi segera kembali. Sumber daya sistem apa pun yang digunakan oleh anak dibebaskan. Nilai dari pid bisa menjadi salah satu: < -1 yang berarti menunggu proses setiap anak yang ID grup prosesnya sama dengan nilai absolut dari pid . -1 yang berarti menunggu proses anak; ini adalah perilaku yang samaTunggu pameran. 0 yang berarti menunggu proses setiap anak yang ID grup prosesnya sama dengan proses panggilan. > 0 yang berarti menunggu anak yang ID prosesnya sama dengan nilai pid . Nilai dari pilihan adalah ATAU nol atau lebih dari konstanta berikut: WNOHANG yang berarti segera kembali jika tidak ada anak yang keluar. TERJANGKAU yang berarti juga mengembalikan untuk anak-anak yang berhenti, dan yang statusnya belum dilaporkan. (Untuk opsi Linux saja, lihat di bawah.) Jika status tidakBATAL, Tunggu atauwaitpid menyimpan informasi status di lokasi yang ditunjuk oleh status . Status ini dapat dievaluasi dengan makro berikut (makro ini mengambil penyangga stat (anint) sebagai argumen --- bukan penunjuk ke buffer!): WIFEXITED ( status ) tidak nol jika anak keluar secara normal. WEXITSTATUS ( status ) mengevaluasi ke sedikitnya delapan bit kode kembalinya anak yang diakhiri, yang mungkin telah ditetapkan sebagai argumen untuk panggilan kekeluar() atau sebagai argumen untuk kembali pernyataan dalam program utama. Makro ini hanya dapat dievaluasi jikaWIFEXITEDkembali bukan nol. WIFSIGNALED ( status ) mengembalikan nilai true jika proses anak keluar karena sinyal yang tidak tertangkap. WTERMSIG ( status ) mengembalikan jumlah sinyal yang menyebabkan proses anak berhenti. Makro ini hanya dapat dievaluasi jikaWIFSIGNALED kembali bukan nol. WIFSTOPPED ( status ) mengembalikan nilai true jika proses anak yang menyebabkan pengembalian saat ini dihentikan; ini hanya mungkin jika panggilan dilakukan menggunakanTERJANGKAU. WSTOPSIG ( status ) mengembalikan jumlah sinyal yang menyebabkan si anak berhenti. Makro ini hanya dapat dievaluasi jikaWIFSTOPPED kembali bukan nol. Beberapa versi Unix (mis. Linux, Solaris, tetapi tidak AIX, SunOS) juga mendefinisikan makroWCOREDUMP ( status ) untuk menguji apakah proses anak membuang inti. Hanya gunakan ini tertutup di #ifdef WCOREDUMP … #endif. ID proses dari anak yang keluar, atau nol jikaWNOHANG digunakan dan tidak ada anak yang tersedia, atau -1 pada kesalahan (dalam hal ini errno diatur ke nilai yang sesuai). ECHILD jika proses yang ditentukan dalam pid tidak ada atau bukan anak dari proses panggilan. (Ini bisa terjadi untuk anak sendiri jika tindakan untuk SIGCHLD diatur ke SIG_IGN. Lihat juga bagian LINUX CATATAN tentang utas.) EINVAL jika pilihan argumen tidak valid. EINTR jikaWNOHANG tidak disetel dan sinyal tidak diblokir atau aSIGCHLD telah ditangkap. Deskripsi
Nilai Pengembalian
Kesalahan




