[C] 나만의 라이브러리 - strlen strlcpy strlcat strchr strrchr strnstr strncmp
·
42Seoul/Libft
1. strlen size_t my_strlen(const char *s); 문자열의 길이를 구하는 함수 size_t my_strlen(const char *s) { size_t i; i = 0; while (s[i]) i++; return (i); } 해당 문자열의 끝을 의미하는 \0 값을 찾을때까지 길이를 구한다. 2. strlcpy size_t my_strlcpy(char *dest, const char *src, size_t size); src 에서 size만큼(\0 포함) 복사하는 함수 size_t my_strlcpy(char *dest, const char *src, size_t size) { const char *s; size_t n; s = src; n = size; // n에 size 복..
[C] 나만의 라이브러리 - memset, bzero, memcpy, memccpy, memmove, memchr, memcmp
·
42Seoul/Libft
1. memset void *my_memset(void *s, int c, size_t n); s위치부터 n바이트 만큼 c값으로 초기화하는 함수 void *my_memset(void *s, int c, size_t n) { unsigned char *ptr; ptr = s; while (n--) *ptr++ = (unsigned char)c; return (s); } 메모리의 1바이트씩 체크와 역참조가 불가능한 void 포인터를 unsigned char포인터로 형변환 s의 시작점을 ptr받고 n개 만큼 반복하며 값을 넣어줌 2. bzero void my_bzero(void *s, size_t n); s위치부터 n바이트 만큼 0으로 초기화하는 함수 void my_bzero(void *s, size_t n)..
[C] memcpy와 memmove의 차이
·
C & C++
memcpy와 memmove 두 함수는 모두 특정 메모리를 다른 메모리로 복사할 때 사용된다. 그렇다면 두 함수의 차이는 뭘까? memcpy void *memcpy(void *dest, void *src, size_t size); dest(destination) : 복사되는 메모리의 주소 src(source) : 복사하는 메모리의 주소 size : 복사할 크기 return : 성공시 dest, 실패시 NULL memmove void *memmove(void *dest, void *src, size_t size); dest(destination) : 복사되는 메모리의 주소 src(source) : 복사하는 메모리의 주소 size : 복사할 크기 return : 성공시 dest, 실패시 NULL 위와 같이 ..
WSL -> WSL2 업그레이드 하기
·
Linux/WSL
개발자 모드에서만 지원하던 WSL2가 드디어 배포되었다. WSL과 WSL2 비교 파일 시스템 성능 향상 전체 시스템 호출 호환성 지원 WSL2는 가장 유용한 최신 가상화 기술을 사용하여 간단한 유틸리티 VM(가상 머신) 내에서 Linux 커널을 실행합니다. 그러나 WSL 2는 기존 VM 환경이 아닙니다. 기능 비교 https://docs.microsoft.com/ko-kr/windows/wsl/compare-versions WSL2 업데이트 방법 wsl1이 설치되어 있다는 가정하에 업데이트를 해보자. wsl1 설치가 필요하다면 아래 링크를 참고하세요 wonillism.tistory.com/7?category=864863 WSL 설치 및 C/C++ vscode 환경 설정 윈도우 10에 WSL 설치 시작 >..
[C] (strncpy, strncat) vs (strlcpy, strlcat)
·
C & C++
strn* strl* strlcpy 함수는 strcpy 함수(src 문자를 대상버퍼(dst)에 복사)를 대상 버퍼를 오버플로우 할 수 없는 보안 버전으로 대체하기 위한 것이다. strcat에 대한 유사한 대안을 제공하는 strlcat도 있다. 버퍼 오버플로우를 방지하는 데 사용할 수 있는 표준 C함수 인 strncpy 및 strncat은 올바르게 사용하기 어렵고 느리게 만드는 결함을 가지고 있다. strlcpy 및 strlcat 은 올바른 사용법이 가능한 한 간단하도록 설계되었다. strlcpy와 strlcat은 Todd C. Miller와 Theo de Raadt에 의해 개발되었으며 OpenBSD 버전 2.4에서 처음 구현되었다. 이후에 libbsd를 통해 FreeBSD (버전 3.3부터), Solar..
[42Seoul] La Piscine 과정을 마치며...
·
Doodle Doodle
지난주 금요일(9/25) 42Seoul La Piscine 과정 최종 발표가 났다. 분명 한 달동안의 과정인데 코로나때문에 최종 시험이 계속 연기되면서 과정 시작부터 최종 발표까지 8주라는 시간이 걸렸다. La Piscine은 프랑스어로 수영장을 의미한다. 내 생각엔 그 수영장에 던져놓고 알아서 살아남으라는 뜻이 아닐까 싶다. 첫 주는 정말 맨붕이었다. 정말 말그대로 넓디 넓은 수영장에 홀로 떨어진 기분이었다. 허우적 허우적... 주로 리눅스 쉘 명령어와 C언어를 배운다. 더 이상의 자세한 설명은 과정에 대한 스포이므로 하지않겠다. 평소 wsl쓰면서 쉘 명령어가 얼마나 어렵겠어? 했는데 난관의 연속이었다... 겨우겨우 쉘을 넘기고 C언어로 넘어갔는데 이 것도 얕봤다가 혼쭐이 났다. 정말로 같이 교육받는 ..
[C in Linux] Makefile
·
C & C++/C in Linux
Makefile이란? Linux상에서 반복적으로 발생하는 컴파일을 쉽게하기위해서 사용하는 make프로그램의 설정 파일. Makefile을 통해 라이브러리 및 컴파일러 환경을 관리할 수 있다. Incremental build를 사용하기 위함. Incremental build란? 반복적인 빌드 과정에서 변경된 소스코드에 의존성(Dependency)이 있는 대상들만 추려서 다시 빌드하는 기능이다. 예를 들어, 위의 빌드 예제에서 main.c의 한 줄만 바꾸고 다시 빌드할 때, 컴파일과 링크만 수행하는 경우가 이에 해당한다. Makefile의 기본 구조 파일명 : Makefile Makefile은 Target(대상), 의존 관계(Dependency), 명령(Recipe/Command)의 세가지로 아루어진다. -..
[Programmers - Lv03] 추석 트래픽(C++ / Python)
·
카테고리 없음
추석 트래픽 코딩테스트 연습 - [1차] 추석 트래픽 입력: [ 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 programmers.co.kr 문제 설명 주어지는 로그 문자열의 구성은 다음과 같다. "2020-09-15 18:03:00.000 2.000s" 날짜 종료 시간 처리 시간" 로그 문자열들을 이용하여 로그들이..
WONILLISM
'분류 전체보기' 카테고리의 글 목록 (23 Page)