목록2021/09/25 (4)
치춘짱베리굿나이스
kill_and_pause 신호를 kill 하고 50us 쉬어주는 함수 usleep을 주는 이유는, 클라이언트에서 신호를 보내는 속도보다 서버측에서 데이터를 처리하는 속도가 느릴 경우 신호가 씹혀 클라이언트와 서버 모두가 무한 루프에 빠질 수 있다
Mandatory 조건 한 문자 (char) 당 송수신하는 시그널이 8개 이상이면 안 된다 전역변수는 프로그램당 1개 이하 1000글자에 2초 이하, 100글자에 1초 이하, 10글자에 1초 이하 최근 평가지 개편으로 몇 조건들이 사라지면서 쉬운 프로젝트가 됐다 (노션 서식이 망가져 부득이하게 이미지로 대체) 이렇게 하면 클라이언트에서 정확히 한 글자당 8비트씩만 보내고 끝나기 때문에, Mandatory 조건을 만족시킬 수 있다 (단 상당히 불안정해서, 비트를 한 번에 많이 보내려 시도하면 깨질 가능성이 있음)
signal void (*)(int) signal(int sig, void (*handler)(int)); 시그널 처리 방법을 설정한다 몇몇 시그널들은 이미 정의된 행동을 함으로써 처리되는데, 이처럼 기존에 정의된 행동을 그대로 할 지, 시그널을 그냥 무시할지, 아니면 사용자 정의 행동을 하도록 바꿔줄 지 선택할 수 있다 sig는 처리해줄 시그널 번호 *handler는 시그널을 처리해줄 핸들러SIG_IGN을 인자로 넘겨주면 해당 시그널을 무시한다 함수포인터를 넘겨주면 시그널이 들어왔을 때 특정 함수를 호출한다 SIG_DFL을 인자로 넘겨주면 기존에 정의된 방법대로 수행한다 sigset_t 구조체 typedef struct { unsigned int __sigbits[4]; } sigset_t; 시그널은 ..
미니톡 하시는 분이 계셔서 생각나서 올렸읍니다. 주의사항 libft 사용 = 상관없다 이유는.. minitalk 사용가능 함수와 libft 사용가능 함수가 겹치기 때문 (write, malloc, free...) Makefile은 클라이언트, 서버용을 따로 만들어두는 것이 좋을듯? 루트 폴더에 있는 Makefile은 두 Makefile을 같이 진행하는 식으로..) 보너스는 사실상 클라이언트 - 서버간 TCP 구현을 유도한 부분 쉘에서의 큰따옴표 ("") 와 작은따옴표 ('') 차이 큰따옴표는 내부에 변수 ($변수명) 가 있을 경우 해당 변수를 실제 값으로 치환해서 표시 $> temp=$'hello\n\n' $> echo "hello$temp" hello 작은따옴표는 $변수명 을 그대로 출력한다주의: 변수..