이 프로그램에서 crtl-C 또는 ctrl-Z가 작동하지 않는 이유는 무엇입니까?

이 프로그램에서 crtl-C 또는 ctrl-Z가 작동하지 않는 이유는 무엇입니까?

Ctrl이 프로세스가 실행되는 동안 + C또는 Ctrl+를 통해 중지하려고 시도했지만 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");
}

답변1

Ctrl+ CCtrl+ 둘 다 Z터미널 창과 Emacs 쉘 ​​버퍼 모두에서 작동합니다.

작동하지 않는 이유는 사용 중인 터미널 유형에 따라 다를 수 있습니다. 프로그램 출력에 압도되어 키보드 입력을 처리하지 못할 수도 있습니다.

이것을 시도해보고 문제가 해결되는지 확인하십시오.

#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();
}

관련 정보