Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C yang tidak akan berhenti seketika apabila Ctrl+Z ditekan

Program C yang tidak akan berhenti seketika apabila Ctrl+Z ditekan

WBOY
WBOYke hadapan
2023-09-19 18:13:021320semak imbas

Program C yang tidak akan berhenti seketika apabila Ctrl+Z ditekan

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.

Contoh

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;
}

Output

// 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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam