본문 바로가기
42seoul/circle-2

[ minitalk ] 0. 과제이해하기

by saniii 2022. 2. 16.

[ minitalk ]

** UNIX signal을 이용한 소규모 데이터 교환 프로그램
유닉스 신호를 주고받는 작은 데이터 교환 프로그램을 코딩

2022.02.22 - [42_san (42seoul)/minitalk] - [minitalk] 1. UNIX signal 

 

더보기
  • 노미네이트 기준을 따르세요.
  • 프로그램이 예기치 않게 종료되면 안됩니다. ex) segmentation fault, bus error, double free 등...
  • 힙에 선언한 모든 메모리 영역은 free처리하세여.... 메모리 누수 안됨
    • main 함수에 제일 마지막에 while(1); 걸어놓고 다른 창에서 leaks [실행파일명]으로 확인가능
  • Makefile 제출, -Wall -Wextra and -Werror 플래그에 따라 컴파일을 해야하며, 컴파일 이후에 다시 리링트되면 안됨
  • Makefile은 $(NAME), all, clean, fclean, re에 대한 룰을 정의하고 있어야 함
  • 실행파일의 이름은 client와 server

 

# 사용할 수 있는 함수

  • write
  • ft_printf and any equivalent YOU coded
  • signal
  • sigemptyset
  • sigaddset
  • sigaction
  • kill
  • getpid
  • malloc
  • free
  • pause
  • sleep
  • usleep
  • exit

2022.02.23 - [42_san (42seoul)/minitalk] - [ minitalk ] 시그널 함수

2022.02.24 - [42_san (42seoul)/minitalk] - [ minitalk ] getpid() | pause() | sleep() | usleep() | exit()

 

 

 

# 구현과제

- C언어
- 클라이언트와 서버가 서로 통신하는 프로그램 만들기
- 서버가 먼저 실행되며, 실행된 후 PID를 표시해야 한다.
- 클라이언트가 실행될 때, 서버 PID와 전송할 문자열의 매개변수를 받는다.

  • ./client [SERVER_PID] "string"  꼴로 클라이언트 실행하기

- 클라이언트는 매개변수로 전달한 문자열을 서버로 통신하고
- 서버는 문자열이 수신되면 그 문자열을 표시
- 서버는 문자열을 매우 빠른 속도로 표시해야한다.
(100자의 문자열을 표시하는데 1초가 걸리면 그건 엄청 느린거다.)

  • n자의 문자열을 확인하기위해 도움받을 사이트..! : https://lettercounter.net/  
  • n자의 문자열 전송 시간을 확인하기 위해 알아야할 명령어.... : time ./client [SERVER_PID] "string"

- 서버가 재시작하지 않고도 클라이언트로붙 문자열을 연속으로 수신할 수 있어야한다.
- SIFUSR1, SIGUSR2 두 신호만 사용할 수 있다.

Linux system do NOT queue signals when you already have pending signal of this type! bonus time?

 

 

 

 

 

# 보너스

- 소규모 수신 확인 시스템 추가
- 유니코드 문자 지원하기

ㅎㅎㅎㅎ


'42seoul > circle-2' 카테고리의 다른 글

[minitalk] 발전방향  (0) 2022.02.26
[ minitalk ] 구현과정  (0) 2022.02.25
[ minitalk ] getpid() | pause() | sleep() | usleep() | exit()  (0) 2022.02.24
[ minitalk ] 시그널 함수 <signal.h>  (0) 2022.02.23
[minitalk] 1. UNIX signal  (0) 2022.02.22

댓글