Dalam pengaturcaraan, apabila atur cara tidak berfungsi dan berjalan dengan cara yang tidak dijangka dalam pengkompil terminal, pengaturcara mempunyai hak untuk secara eksplisit menghentikan program daripada berjalan. Untuk menghentikan program secara eksplisit, pengguna mesti mengetahui pintasan papan kekunci yang betul untuk ditekan.
Untuk menamatkan pelaksanaan blok kod, dua jenis pintasan papan kekunci digunakan.
Ctrl+c - Digunakan untuk menghentikan pelaksanaan program yang mengambil sedikit masa untuk menyelesaikan operasi input/output dan kemudian menjeda pelaksanaan. Ia menghantar isyarat SIGINT kepada proses dan proses itu akan ditamatkan. Dalam sesetengah bahasa, ini boleh dikendalikan melalui fungsi isyarat yang serupa dengan bahasa C SIGINT.
Ctrl+z - Digunakan untuk menghentikan pelaksanaan program Semua tugasan yang berkaitan dengan proses ditutup dan pelaksanaan digantung. Ia menghantar isyarat SINTSTP kepada proses, menamatkan pelaksanaan program. Walaupun dilaksanakan dengan cara yang sama, isyarat ini lebih berkuasa daripada yang lain. Ini juga boleh dikendalikan.
Di sini, kami akan menulis kod yang boleh memintas panggilan ctrl+z. Daripada dijeda, atur cara akan mencetak "ctrl+z tidak boleh menjeda kod ini".
Seperti yang dinyatakan di atas, bahasa pengaturcaraan C boleh mengendalikan panggilan ctrl+z. Apabila isyarat SINTSTP dipanggil untuk menamatkan proses program, kami akan mentakrifkan semula peranan isyarat ini supaya apabila digunakan ia tidak menamatkan kod dan mencetak baris. Kaedah
signal() digunakan untuk mengendalikan perkara jenis ini.
Demonstrasi
#include <stdio.h> #include <signal.h> void signalhandler(int sig_num){ signal(SIGTSTP, signalhandler); printf("Cannot execute Ctrl+Z</p><p>"); } int main(){ int a = 1; signal(SIGTSTP, signalhandler); while(a){ } return 0; }
// an infinite loop
Atas ialah kandungan terperinci Program C yang tidak akan berhenti seketika apabila Ctrl+Z ditekan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!