라이프로그


Select 함수 by 하하폴

Select 함수

  단일 프로세스에서 여러개의 fd를 모니터링하는 함수.

 

#include <sys/select.h>

 

int select (int nfds, fd_set restrict *readfds, fd_set restrict *writefds,

                         fd_set restrict *errorfds, struct timeval *restrict timeout);

 

int nfds : 감시할 fd의 범위지정으로, 감시할 fd 중 가장 큰 fd +1

fd_set *readfds : 읽기에 대해 감시하고자 하는 fd의 집합

fd_set *writefds : 쓰기에 대해 감시하고자 하는 fd의 집합 

fd_set *errorfds : 에러 조건 감시하는 fd

  ※ fd_set의 값이 NULL이면 해당 fd는 감시하지 않는다.

struct timeval *timeout : fd가 준비되지 않더라도 이 시간이 지나면 select함수는 반환을 한다.

  ※ null이면 무한정 블록


    반환 값 : 준비된 fd의 수

void FD_CLR(int fd, fd_set *fdset);

      fd의 집합 중 해당 fd를 제외시킨다.

int FD_ISSET(int fd, fd_set *fdset);

      fd의 집합 중에 해당 fd가 준비되었는가를 묻는다. ( 1이면 준비됨, 0이면 준비안됨 )

void FD_SET(int fd, fd_set *fdset);

      fd의 집합에 해당 fd를 포함시킨다.

void FD_ZERO(fd_set *fdset);

      fd의 집합을 모두 0으로 초기화 시킨다.


select의 마지막 매개변수인 struct timeval 구조체

struct timeval {

       long tv_sec;   // second

       long tv_usec; // us(micro second)

}

[출처] UNIX, select 함수|작성자 현님처럼


Linux Root 비밀번호 복구 by 하하폴

리눅스에서 루트 비밀번호를 분실 하였을 경우,
싱글 모드로 부팅한 후 루트 비밀 번호를 변경 할 수 있습니다.
따라서 싱글 모드 부팅하는 방법을 설명 하겠습니다.


GRUB

  1. GRUB 메뉴에서 e를 누릅니다.
  2. EDIT 화면에서 화살표키로 "kernel /boot/vmlinuz-xxxx"로 옮깁니다.
  3. 다시 e키를 누르면 명령어 줄이 나옵니다.
  4. 끝에 한 칸 띄우고 single이라고 적고 Enter를 누릅니다.
  5. b를 눌러 부팅을 합니다.


1 2 3 4 5 6 7 8 9 10 다음