🚩 uid, guid 검색
✔ uid 검색
#include <sys/types.h>
#include <unistd.h>
uid_t getuid(void);
uid_t geteuid(void);
✔ guid 검색
#include <sys/types.h>
#include <unistd.h>
gid_t getgid(void);
gid_t getegid(void);
🚩 directory tree의 산책
✔ 사용법
#include <ftw.h>
int ftw(const char *path, int(*func)(), int depth);
- path에서 시작해서 recursive하게 subdirectory와 file들에 func()수를 적용
- depth : ftw에 의해 사용 가능한 file descriptor의 수
int func(const char * name, const struct stat* sptr, int type)(){
}
- name : target object의 이름
- sptr : object에 대한 자료가 저장된 stat에 대한 pointer
- type :
FTW_F : object 가 file
FTW_D : object 가 directory
FTW_DNR : object가 읽을 수 없는 directory
FTW_NS : object는 ?
- 함수가 0이 아닌 return 값을 가지거나, error 발생하면 중단
🚩 Process
✔ process란? 프로그램 코드, 변수 값, 스택 등에 저장된 값, PCB 내용 등을 포함
하나의 프로세스는 여러 프로그램을 실행 시킬 수 있고, 하나의 프로그램에도 여러 프로세스가 있을 수 있다.
- process의 계층 구조 : parent process → child processes
- unix 시스템의 모든 process는 init의 descent process이다.
🚩 프로세스 목록 보기
- shell 상에서 프로세스 목록 확인 ▶ $ps
- 실행 중인 프로세스 종료 시키기 ▶ $kill -9 프로세스 번호
🚩 Process Identifier
- process identifier : 음이 아닌 정수 (UNIX는 만들어진 순서대로 process 0, 1, 2라 한다.)
0 : swapper (모든 프로세스들의 ancestor)
1 : init
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
🚩 Process Group
▶ process group
- 프로세스들을 묶어서 하나의 group으로 만든다.
- 같은 group에 속한 process들에게 동시에 signal을 보낼 수 있다.
- 초기에 fork나 exec에 의해 group id 계승
▶ group leader
- 자신의 pid가 group id이면, group의 leader이다.
✔ getpgrp, getpgid 모두 프로세스 그룹 ID 리턴
#include <sys/types.h>
#include <unistd.h>
pid_t getpgrp(void);
pid_t getpgid(pid_t pid);
: getpgid의 인자가 0이면 호출 프로세스 자신의 group id 검색
✔ process group의 변경
#include <sys/types.h>
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);
: pid인 프로세스의 group id를 pgid로 설정
🚩 Session
▶ session
한 세션은 한 단말기를 사용하는 foreground process group과 background process group의 집합체이다.
각 process group은 하나의 session에 속한다.
#include <sys/types.h>
#include <unistd.h>
pid_t getsid(pid_t pid);
#include <sys/types.h>
#include <unistd.h>
pid_t setsid(void);
- 제어 단말기를 갖지 않는 새로운 session과 group 생성
- 호출 프로세스의 id가 session과 group의 id가 된다.
- 만약, 호출 process가 현재 group의 leader이면 -1을 return 한다.
Lect5 (3).pdf
0.32MB
Lect4 (2).pdf
0.28MB

'UNIX 프로그래밍' 카테고리의 다른 글
[1주차 실습] UNIX 실습 문제 (0) | 2023.10.15 |
---|---|
[6주차 개념] UNIX 프로세스 생성과 실행 (1) | 2023.10.13 |
[3주차 개념] UNIX 파일과 디렉토리 (0) | 2023.09.27 |
[2주차 개념] UNIX 파일 입출력 (0) | 2023.09.27 |
[1주차 개념] UNIX 사용법 (+ LINUX와 차이점) (0) | 2023.09.07 |
댓글