본문으로 바로가기
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 kill 시그널 전송 함수 kill()

C언어 kill 시그널 전송 함수 kill()

· 댓글 0 · 바다야크

C함수 kill 시그널 전송 kill()

kill() 함수는 쉘에서 프로세스를 죽이는 kill 명령과는 달리 프로세스에 시그널을 전송합니다. 물론, 프로세스에 SIGKILL을 보내면 쉘 명령의 kill과 같은 역활을 합니다.

  • 헤더: signal.h
  • 형태: int kill(pid_t pid, int sig)
  • 인수: pid_t pid
    int sig 시그널 번호
  • 반환: int 0 == 성공
    -1 == 실패

kill() 함수는 특정 프로세스 뿐만 아니라 같은 그룹 ID가 같은 모든 프로세스에게 동시에 시그널을 전송할 수 있으며, 권한 안에 있는 모든 프로세스에게도 시그널을 전송할 수 있습니다.

int kill(pid_t pid, int sig); 

첫 번째 인수는 pids는 KILL 대상 프로세스 ID, 두 번째 인수 sig는 시그널 번호입니다. pid는 프로세스 ID 값에 따라 아래와 같이 처리가 분류됩니다.

 

pid 의미
양수 지정한 프로세스 ID에만 시그널을 전송
0 함수를 호출하는 프로세스와 같은 그룹에 있는 모든 프로세스에 시그널을 전송
-1 함수를 호출하는 프로세스가 전송할 수 있는 권한을 가진 모든 프로세스에 시그널을 전송
-1 이외의 음수 첫 번째 인수 pid 의 절대값 프로세스 그룹에 속하는 모든 프로세스에 시그널을 전송

C언어 kill() 함수 예제

단순 문자 출력 예제 KILL 시그널 전송 예제
#include <stdio.h>
#include <unistd.h>

int main( void)
{
   while( 1 ){
      printf( "badayak.com\n");
      sleep( 1);
   }
   return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

int main( int argc, char *argv[])
{
   if ( argc < 2){
      printf( "사용법: ./a.out [프로세스 ID]\n");
   }
   else{
      kill( atoi( argv[1]), SIGKILL);
   }
}
소스를 killed.c로 저장하고 killed.out으로 컴파일 합니다. 소스를 killer.c로 저장하고 killer.out으로 컴파일 합니다.
]$ gcc killed.c -o killed.out
]$ ./killed.out
my pid=11349
badayak.com
badayak.com
badayak.com
badayak.com
badayak.com
badayak.com
죽었음
]$
]$ gcc killed.c -o killed.out








]$ ./killer.out 11349
]$
💬 댓글 0

이름을 저장합니다.

최근글 thumbnail C언어 텍스트 파일 읽기 예제 thumbnail 모기 물린데 가려움증 없애는 기구 3가지 thumbnail 바퀴벌레 약 추천 맥스포스겔 셀렉트 이지겔 (2) thumbnail C언어 텍스트 파일 쓰기 방법 thumbnail 카카오톡 책갈피로 중요한 톡 북마크 표시 thumbnail 윈도우 노트북 SD 메모리 카드 암호화 방법 thumbnail 삼성덱스 휴대폰 충전 방법 (1) thumbnail 돈 버는 어플 3종 현금되는 영수증 인증과 돈버는 만보기앱
다행이네요. 약 효과가 아무⋯ 💬바다야크 이사 오기전 전에 저도 썼었⋯ 💬라디오키즈 구글 크롬 원격 데스크톱을⋯ 💬바다야크 구글크롬 원격데스크탑 사용⋯ 💬ㅠㅠ 아! 그렇습니까. 맥을 사용하⋯ 💬바다야크