tcsetpgrp 예제

다음 예제에서는 tcsetpgrp() 메서드의 사용을 보여 주다. 자식이 아닌 부모 프로세스에서 tcsetpgrp()를 호출해야 합니다. 그러나 부모 프로세스가 시작되고 배경으로 이동하면 SIGTTOU가 수신되고 중지됩니다. tcsetpgrp()를 호출해야 하는 자식이 아닌 부모입니다. setpgid() 호출 후 자식은 백그라운드 프로세스가 됩니다. 유효한 경우는 전경 그룹이 권한을 포기하고 다른 배경 그룹이 전경 및 자체 배경이 되도록 하는 것입니다. 백그라운드 그룹의 프로세스는 제어 터미널을 잡을 수 없습니다. 예제 코드는 다음과 같습니다: 함수 tcsetpgrp()는 fd에 연결된 터미널의 전경 프로세스 그룹을 프로세스 그룹 ID pgrp를 사용하여 프로세스 그룹을 만들고 호출 프로세스의 제어 단말이어야 하며 여전히 해당 프로세스와 연결되어야 합니다. 세션. 또한 pgrp는 호출 프로세스와 동일한 세션에 속하는 (비어 없는) 프로세스 그룹이어야 합니다. tcsetpgrp()가 세션의 백그라운드 프로세스 그룹의 구성원에 의해 호출되고 호출 프로세스가 SIGTTOU를 차단하거나 무시하지 않는 경우 SIGTTOU 신호가 이 백그라운드 프로세스 그룹의 모든 구성원에게 전송됩니다. #include int tcsetpgrp (int fildes, pid_t pgid_id); 또한 tcsetpgrp() 호출 후 코드가 실행되지 않는 것 같습니다.

제어 단말과 연관된 필데에서 배경 프로세스 그룹의 구성원인 프로세스에서 tcsetpgrp()를 사용하려고 하면 프로세스 그룹이 SIGTTOU 신호를 전송하게 됩니다. 호출 프로세스가 SIGTTOU 신호를 차단하거나 무시하는 경우 프로세스는 작업을 수행할 수 있으며 신호가 전송되지 않습니다. 메서드 tcsetpgrp()는 fd(os.open()에 의해 반환되는 개방형 파일 설명자)에 의해 주어진 단말과 연관된 프로세스 그룹을 pg로 설정합니다. 프로세스에 제어 단말이 있는 경우 tcsetpgrp()는 단말과 연관된 전경 프로세스 그룹 ID를 pgid_id로 설정해야 한다. 응용 프로그램은 fildes와 연관된 파일이 호출 프로세스의 제어 단말이고 제어 단말이 현재 호출 프로세스의 세션과 연관되어 있는지 확인해야 합니다. 응용 프로그램은 pgid_id값이 호출 프로세스와 동일한 세션에서 프로세스의 프로세스 그룹 ID와 일치하는지 확인해야 합니다. . 그 후/ usr/bin/nano를 생성하는 execv() 명령이 있습니다. setpgid() 호출 후 다음을 자녀에게 추가했습니다: 그러나 나노가 올라오는 대신 아무 일도 일어나지 않으며 터미널은 사용자 입력을 기대하는 것처럼 보입니다. 나는 그것을 작동시키기 위해 자식 프로세스에 SIGCONT 신호를 보내야하는 곳을 읽었습니다.

This entry was posted in Uncategorized. Bookmark the permalink. Both comments and trackbacks are currently closed.
  • Get a Quote
  • Request a Call Back

    Oops! We could not locate your form.

  • We deliver…

    • Fully A-Rated Inhouse
    • Special Q-Lon Sealing Gaskets
    • Heat Retaining Glass
    • Most Competitive Prices
    • 10 Day delivery
    • Expert Fitting
    • Same Day Aftercare
    • Largest Range of Colours
    • Best Technical Advice
    • No Deposit