링크 ux 프로 세 스 정보 함수 가 져 오기
프로 세 스 상태 및 변환
#define TASK_RUNNING 0 //
#define TASK_INTERRUPTIBLE 1 // ( )
#define TASK_UNINTERRUPTIBLE 2 // ( )
#define TASK_STOPPED 4 //
#define TASK_ZOMBIE 8 //
#define TASK_DEAD 16 //
프로 세 스 의 기본 동작, 6 가지 종류:
1. 프로 세 스 정보 함수 가 져 오기: 주로 프로 세 스 제어 블록 PCB 의 정 보 를 읽 습 니 다.(1) getpid () 기능: 현재 프로 세 스 의 프로 세 스 표 지 를 가 져 옵 니 다.정의 함수: pidt getpid (void) 반환 값: 현재 프로 세 스 의 프로 세 스 식별 번 호 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(2) getppid () 기능: 현재 프로 세 스 의 부모 프로 세 스 표 지 를 가 져 옵 니 다.정의 함수: pidt getppid (void) 반환 값: 현재 프로 세 스 의 부모 프로 세 스 식별 번 호 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(3) getpgid () 기능: 매개 변수 pid 명령 프로 세 스 가 속 하 는 그룹 식별 번 호 를 얻 을 수 있 습 니 다. 매개 변수 가 0 이면 현재 프로 세 스 의 그룹 식별 코드 를 되 돌려 줍 니 다.정의 함수: pidt getpgid (pid t pid) 반환 값: 실행 에 성공 하면 정확 한 그룹 식별 코드 를 되 돌려 줍 니 다. 잘못 되면 - 1 로 돌아 갑 니 다. 오류 원인 은 errno 에 존재 합 니 다.헤더 파일: \ # include < unistd. h >
(4) getpgrp () 기능: 현재 프로 세 스 가 속 한 그룹 식별 번 호 를 얻 는 데 사용 되 며, getpgid (0) 와 같 습 니 다.정의 함수: pidt getpgrp (void) 반환 값: 실행 에 성공 하면 정확 한 그룹 식별 코드 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(5) getpriotity (void) 기능: 프로 세 스, 프로 세 스 그룹, 사용자 의 프로 세 스 실행 우선권 을 가 져 옵 니 다.정의 함수: int getpriority (int which, int who) 매개 변수 의미: which: PRIOPROCESS who 프로 세 스 를 위 한 식별 코드 PRIOPGRP who 프로 세 스 를 위 한 그룹 식별 코드 PRIOUSER who 사용자 식별 코드 반환 값: 실행 에 성공 하면 현재 프로 세 스 의 우선 순위 (- 20 - 20) 를 되 돌려 줍 니 다. 값 이 작 을 수록 우선 순위 가 높 습 니 다.오류 가 발생 하면 - 1 로 돌아 갑 니 다. 이 유 는 errno 에 있 습 니 다.헤더 파일: \ # include < sys / resource. h >
간단 한 실례:
[keven@localhost systemCall]$ cat -n get_process_information.c
#include <stdio.h>
#include <unistd.h>
#include <sys/resource.h>
int main(/*int argc,char **argv*/)
{
printf("This process's pid is:%d",getpid());
printf("/nThis process's farther pid is:%d",getppid());
printf("/nThis process's group pid is:%d",getpgid(getpid()));
printf("/nThis process's group pid is:%d",getpgrp());
printf("/nThis process's priority is:%d/n",getpriority(PRIO_PROCESS,getpid()));
return 0;
}
[keven@localhost systemCall]$ ./get_process_information
This process's pid is:6172
This process's farther pid is:5681
This process's group pid is:6172
This process's group pid is:6172
This process's priority is:0
[keven@localhost systemCall]$