Linux

為什麼 crtl-C 或 ctrl-Z 在這個程序中不起作用?

  • April 15, 2021

在此過程執行期間,我試圖通過Ctrl+CCtrl+停止它,Z但其中任何一個都不起作用。

#include  <stdio.h>

void  main(void)
{
    process();
}

void  process(void)
{
    int   i;

    for (i = 1; i <= 20000000; i++){
          printf("hello world!\n");
   }
   
   printf("!!!!!!end of print!!!!!!\n");
}

Ctrl+CCtrl+都Z適用於我,無論是在終端視窗中還是在 Emacs shell 緩衝區中。

它對您不起作用的原因可能取決於您使用的終端類型。可能是它被程序的輸出壓得喘不過氣來,然後它無法處理鍵盤輸入。

試試這個,看看它是否能解決你的問題:

#include <stdio.h>
#include <unistd.h>

void  process(void)
{
 int   i;

 for (i = 0; i < 20; i++)
   {
     printf("hello world!\n");
     sleep(1);
   }

 printf("!!!!!!end of print!!!!!!\n");
}

void  main(void)
{
 process();
}

引用自:https://unix.stackexchange.com/questions/645155