100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

42 Seoul 7

[42 Seoul] minitalk

요약: 이번 프로젝트의 목표는 UNIX 신호를 이용해 데이터를 주고받는 작은 프로그램을 작성해보는 것입니다. 알아야할 선수지식 signal() void (*)(int) signal(int sig, void (*handler)(int)); 시그널 처리 방법을 설정한다 몇몇 시그널들은 이미 정의된 행동을 함으로써 처리되는데, 이처럼 기존에 정의된 행동을 그대로 할 지, 시그널을 그냥 무시할지, 아니면 사용자 정의 행동을 하도록 바꿔줄 지 선택할 수 있다 sig는 처리해줄 시그널 번호로서, 매크로 SIGABRT, SIGALL, SIGILL, SIGINT, SIGFPE, SIGIO, SIGOTHER, SIGSEGV, SIGTERM, SIGUSR1 또는 SIGUSR2 중 하나여야 하며, signal.h 포함 파일..

42 Seoul 2022.06.03

[42 Seoul] Born2BeRoot 설정가이드(Debian)

사진만 따라하면 누구나 설치가 가능하도록 작성하였습니다. 본 게시글은 Born2BeRoot의 Mandatory part만 구현을 했습니다. Bonus part까지의 구현을 원하신다면 다른 블로그의 게시글을 확인해주시기 바랍니다. 설치환경: 클러스터 iMac 크게 9가지 구성으로 나뉩니다. 1. sudo 설치 및 설정 2. 그룹 설정 3. vim 설치 및 Apparmor 설정 4. UFW 설정 5. DHCP 해제 및 SSH 설정 6. 비밀번호 정책 설정 7. 호스트네임 및 파티셔닝 설정 8. Monitoring.sh 9. 과제 제출시 sudo 설치 및 설정 su - sudo를 설치하기 위해서는 루트로 접속을 해야한다. 루트로 접속한다. dkpg -l sudo sudo의 설치여부를 확인한다. apt inst..

42 Seoul 2022.05.13

[42 Seoul] Born2BeRoot 설치가이드(Debian)

사진만 따라하면 누구나 설치가 가능하도록 작성하였습니다. 본 게시글은 Born2BeRoot의 Mandatory part만 구현을 했습니다. Bonus part까지의 구현을 원하신다면 다른 블로그의 게시글을 확인해주시기 바랍니다. 설치환경: 클러스터 iMac 크게 4가지 구성으로 나뉩니다. 1. Virtualbox 세팅 2. 언어, 타임존 설정 3. 네트워크, 파티션 설정 4. 패키지 매니저, 소프트웨어 패키지, 부트로더 설정 Virtualbox 세팅 데비안을 설치하기로 했기에 데비안을 선택을 합니다. 클러스터의 공간문제로 goinfre 공간에 설치합니다. (클러스터 올때마다 매번 설치하기 귀찮...) Virtualbox에서의 메모리 설정을 합니다. 기본설정에 맞게 세팅합니다. Virtualbox에서의 하..

42 Seoul 2022.05.12

[42 Seoul] Born2beRoot

Instructions 이 프로젝트는 가상화의 멋진 세계를 소개하는 것을 목표로 합니다. 특정 지침에 따라 VirtualBox(또는 VirtualBox를 사용할 수 없는 경우 UTM)에 첫 번째 시스템을 생성합니다. 그러면 이 프로젝트가 끝나면 엄격한 규칙을 구현하면서 자신만의 운영 체제를 설정할 수 있습니다. https://dc-choi.tistory.com/56 [42 Seoul] Born2BeRoot 설치가이드(Debian) 사진만 따라하면 누구나 설치가 가능하도록 작성하였습니다. 본 게시글은 Born2BeRoot의 Mandatory part만 구현을 했습니다. Bonus part까지의 구현을 원하신다면 다른 블로그의 게시글을 확인해주시기 dc-choi.tistory.com https://dc-ch..

42 Seoul 2022.05.09

[42 Seoul] Printf

printf putnbr와 putstr으로는 만족할 수 없기 때문에... 요약 : 이 프로젝트는 꽤 단순합니다. 여러분은 printf 함수를 직접 구현하시면 됩니다. 희망컨대 여러분들은 cheater로 지목될 수 있다는 두려움 없이 추후 프로젝트에서 이것을 재활용할 수 있습니다. 여러분은 주로 가변 인자 (variadic arguments) 를 사용하는 방법에 대해 배울 것입니다. C에서 printf 함수의 다재다능함은 프로그래밍에 있어 우리에게 훌륭한 연습이 됩니다. 이 프로젝트는 중간 정도의 난이도를 가지며, 여러분들이 C에서 가변 함수들을 배울 수 있도록 도와줍니다. 성공적인 ft_printf의 핵심은 체계적이고 확장성 있는 코드입니다. 알아야할 선수지식 Libft 사용 Libft를 사용하기 위해서..

42 Seoul 2022.04.22

[42 Seoul] Get Next Line

Get Next Line fd에서 한 줄을 읽는다는 것은 너무나도 지루한 일입니다. 요약: 이 프로젝트의 목적은 파일 디스크립터로부터 읽혀진, 개행으로 끝나는 한 줄을 반환하는 함수를 코드화 하는 것입니다. 알아야할 선수지식 파일스크립터 파일 디스크립터란 리눅스 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념으로 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다. 파일 디스크립터는 일반적으로 정수값을 가진다. 흔히, 리눅스 시스템에서 모든 것을 파일이라고 한다. 우리가 흔히 생각하는 파일부터 디렉토리, 소켓, 드라이버, 블록 디바이스, 등등 모든 객체를 파일로 관리한다. 프로그램이 프로세스로 메모리에서 실행될 때, 기본적으로 할당되는 파일 디스크립터는 표준 입력, 표준 출력, 표준 에러이며..

42 Seoul 2022.03.07

[42 Seoul] Libft

Libft 나만의 첫 번째 라이브러리 요약: 이 프로젝트의 목적은 흔히 쓰이는 함수들을 재구성하여 이후의 모든 프로젝트에서 사용될 C 라이브러리를 제작하는 것입니다. 알아야할 선수지식 C 문법 const란? 해당 식별자의 값을 변경할 수 없도록 선언한다는 키워드 매개변수에 const를 붙이는 이유? 특정 함수에 전달하는 포인터의 내용이 훼손되는 것을 방지하기 위해서이다. 다른 함수에 포인터가 전달될 경우, call-by-reference 형태로 전달되므로 다른 함수 내에서 포인터의 값을 임의 조작할 수 있기 때문이다. size_t란? 플랫폼마다 다른 bit의 부호없는 정수형을 사용하기 위해서 사용하는 typedef, 이론상으로 가장 큰 사이즈를 담을 수 있는 unsigned 데이터 타입 Introduct..

42 Seoul 2022.01.07