C,C++ & Linux
-
top 명령어 정리C,C++ & Linux 2020. 9. 9. 17:47
17:45:27 : 현재 시간 13:12 : 시스템 부팅 시간 (13시간 12분 전) user : 접속 중인 유저 수 load average : 현재 시스템이 얼마나 일을 하는지 나타냄(부하율) 왼쪽부터 1분, 5분, 15분 간의 평균 실행/대기 중인 프로세스의 수 Tasks : 프로세스의 개수 running : 동작 중인 프로세스의 수 sleeping : 잠자기모드인 프로세스의 수 stopped : 정지 모드인 프로세스의 수 zombie : 좀비 모드인 프로세스의 수 %Cpu(s) us, user : unniced 유저프로세스에 사용한 CPU 사용률 sy, system : 커널 프로세스에 사용 한 CPU 사용률 ni, nice : niced 유저 프로세스에 사용한 CPU 사용률 id, idle : id..
-
C/C++ seteuid(2), setegid(2)C,C++ & Linux 2020. 6. 5. 04:31
함수 기능 현재 프로세스의 Effective User ID 혹은 Effective Group ID 를 수정하는 함수입니다. 함수 원형 #include #include int seteuid(uid_t euid); int setegid(gid_t egid); 매개변수 설정하고자 하는 euid, egid 반환값 성공 시 0 리턴 에러 시 -1 리턴하고 errno 설정 예제 #include #include #include #include #include #include int main(int argc, char *argv[]) { int fd, state; // euid를 id -u 명령어를 통해 자신의 uid 를 알아내고 그 번호를 등록 state = seteuid(501); if (state < 0) { f..
-
C/C++ setreuid(2), setregid(2)C,C++ & Linux 2020. 6. 5. 04:15
함수 기능 현재 프로세스의 Real User ID, Effective User ID 혹은 Real Group ID, Effective Group ID 를 수정하는 함수입니다. 함수 원형 #include #include int setreuid(uid_t ruid, uid_t euid); int setregid(gid_t rgid, gid_t egid); 매개변수 ruid Real User ID euid Effective User ID rgid Real Group ID egid Effective Group ID 반환값 성공 시 0 에러 시 -1 리턴하고 errno 설정 리눅스시스템프로그래밍 저자 : 홍지만 https://book.naver.com/bookdb/book_detail.nhn?bid=1462367..
-
C/C++ setuid(2), setgid(2)C,C++ & Linux 2020. 6. 4. 02:21
함수 기능 사용자 ID와 그룹 ID 를 변경하는 함수입니다. setuid() 함수를 실행한 프로세스가 루트 권한을 갖고 있다면 Read User ID, Effective User ID, Saved User ID 모두를 uid 로 바꿉니다. 루트 권한은 갖고 있지 않으나 uid가 Real User ID 혹은 Saved User ID와 같다면 Effective User ID 만을 uid 로 바꿉니다. setgid() 함수는 그룹 아이디를 제어한다는 점만 다르고 setuid() 와 동일하게 동작합니다. 함수 원형 #include #include int setuid(uid_t uid); int setgid(gid_t gid); 매개변수 uid 새로운 uid gid 새로운 gid 반환값 성공 시 0 리턴 에러 시..
-
C/C++ wait3(2), wait4(2)C,C++ & Linux 2020. 6. 4. 01:51
함수 기능 자식 프로세스가 종료되는 것을 기다리며, 종료된 프로세스의 상태와 자원 사용량을 알려주는 함수입니다. 함수 원형 #include #include #include #include pid_t wait3(int *statloc, int options, struct rusage *rusage); pid_t wait4(pid_t pid, int *statloc, int options, struct rusage *rusage); 매개변수 statloc 자식 프로세스의 종료 상태를 나타내는 정보를 담아줍니다. 자세한 내용은 wait() 에 있습니다. options 프로세스의 종료 상태 체크 시 옵션을 걸 수 있습니다. wait() 참조 rusage 자식 프로세스의 리소스 사용량에 대한 정보가 담깁니다. p..
-
C/C++ execl(3), execv(3), execle(3), execve(2), execlp(3), execvp(3)C,C++ & Linux 2020. 6. 4. 01:43
함수 기능 현재 프로세스를 대신하여 새로운 프로세스를 실행하는 함수입니다. 함수 접미사 용도 l list 형태로 인자를 입력합니다. 인자의 끝을 0 으로 표시합니다. v vector 형태로 인자를 입력합니다. e 맨 마지막 인자로 환경 변수를 입력합니다. p 프로세스를 현재 디렉토리(pwd) 에서 찾습니다. exec() 함수는 입력 받은 경로가 '/'로 시작하지 않으면 환경 변수에서 파일을 찾습니다. 파일을 찾으면 실행 가능한 기계어 코드인지 판별하고, 그렇지 않으면 shell script 라고 판단하여 실행시킵니다. 함수 원형 #include int execl(const char *filepath, const char *arg0, ... /* (char *) 0 */); int execv(const c..
-
C/C++ waitid(2)C,C++ & Linux 2020. 6. 4. 00:43
함수 기능 프로세스의 종료 상태를 회수하는 함수입니다. waitpid 보다 유연한 함수이지만 그렇게 많이 쓰이지는 않는것 같습니다. 함수 원형 #include #include int waitid(idtype_t idtype, id_t id, siginfo_t *siginfop, int options); 매개변수 idtype id 의 역할이 idtype 에 따라 바뀝니다. options 용도 P_PID 특정 프로세스를 기다림 P_PGID 특정 프로세스 그룹에 속한 임의의 자식 프로세스를 기다림 P_ALL 임의의 자식 프로세스를 기다림 id 는 무시함 id idtype 에 맞추어서 pid 또는 pgid 를 적절하게 사용하면 됩니다. siginfop 자식 프로세스의 상태를 변화시킨 시그널에 대한 상세한 정보를..
-
C/C++ wait(2), waitpid(2)C,C++ & Linux 2020. 6. 4. 00:34
함수 기능 자식 프로세스의 종료 상태를 회수하는 함수입니다. 부모 프로세스 입장에서는 자식 프로세스가 살아있는지 없는지 알 수 있는 방법이 없으므로 커널에서 시그널을 통해 부모 프로세스에게 알려줍니다. ( SIGCHLD 시그널 ) 함수 원형 #include #include pid_t wait(int *statloc); pid_t waitpid(pid_t pid, int *statloc, int options); 매개변수 pid wait 할 프로세스의 아이디 wait 의 경우 자식 프로세스 중 하나라도 종료된다면 리턴 -1 을 지정하면 wait()와 waitpid(-1) 은 동일한 기능을합니다. statloc 자식 프로세스의 종료 상태를 statloc에 담아줍니다. statloc 구조 statloc 에 사..