본문 바로가기

_Alignof :: 크기와 정렬 요구 구분하기

2026.02.17 19:10:23 2

    • 글자 크기

C 언어에서 자료형에는 바이트 크기뿐 아니라 정렬 요구가 있다.
객체 주소가 어떤 경계에 놓여야 하는지 나타낸다.

먼저 이해할 부분

C11의 _Alignof는 자료형이 요구하는 정렬 값을 얻는다.
sizeof는 저장 공간 크기이고 정렬은 시작 위치 조건이므로 서로 다르다.
일반 변수와 malloc은 필요한 정렬을 맞춰 주지만 임의 바이트 위치의 형변환은 그렇지 않다.

직접 실행할 코드

#include <stdio.h>
#include <stddef.h>

int main(void) {
    printf("int_alignment_valid=%d\n", _Alignof(int) > 0);
    printf("double_alignment_valid=%d\n", _Alignof(double) > 0);
    printf("size_multiple=%d\n",
           sizeof(double) % _Alignof(double) == 0);
    return 0;
}

실행 결과

int_alignment_valid=1
double_alignment_valid=1
size_multiple=1

구현마다 정렬 숫자가 달라질 수 있어 성질을 출력했다.
실제 숫자는 %zu로 _Alignof 결과를 출력하면 된다.
배열에서 다음 원소도 정렬을 만족하도록 크기와 배치가 결정된다.

헷갈리기 쉬운 점

char 버퍼의 아무 위치를 int *로 바꿔 읽는 것은 정렬과 별칭 규칙을 모두 어길 수 있다.
외부 바이트를 값으로 읽을 때는 memcpy 같은 방법과 엔디언 처리를 검토한다.

빌드하기

예제는 C11 기준이다.
example.c로 저장한 뒤 아래 명령으로 빌드한다.
-Wall과 -Wextra는 의심스러운 코드에 대한 경고를 켠다.
경고가 없어도 배열 범위와 자료형의 표현 범위까지 보장되는 것은 아니다.

gcc -std=c11 -Wall -Wextra -Wpedantic example.c -o example
./example

참고: C11 위원회 초안

전자기기 쪽으로 문외한 저희 부모님과 지인을 보고 컴퓨터 쪽에 지식이 없는 분들도 쉽게 프로그램을 이용할 수 있도록 하자는 생각으로 포스팅을 하고 있으며 유익한 정보를 최대한 많이 담아두는 것이 저의 궁극적인 목표입니다.
newlocale() :: 별도 로케일 객체 만들기 duplocale() :: 로케일 객체 복제하기

답글 달기

전화번호 또는 이메일을 남겨두시면 댓글이 달렸을경우 알려드립니다.
사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )

번호 제목 날짜
1240 int :: 정수의 범위부터 확인하기 2025.11.01
1239 isalpha() :: 알파벳 문자인지 판별하기 2025.11.01
1238 isblank() :: 수평 공백 문자인지 판별하기 2025.11.01
1237 std::string_view :: 문자열을 복사하지 않고 바라보기 2025.11.01
1236 bool :: 조건 결과를 값으로 보관하기 2025.11.02
1235 iscntrl() :: 제어 문자인지 판별하기 2025.11.02
1234 RAII :: 자원 수명을 객체 수명에 묶기 2025.11.03
1233 isdigit() :: 십진수 숫자 문자인지 판별하기 2025.11.03
1232 isgraph() :: 공백을 제외한 출력 가능 문자인지 판별하기 2025.11.03
1231 unsigned int :: 음수가 없는 정수의 순환 2025.11.03
1230 islower() :: 소문자인지 판별하기 2025.11.05
1229 isprint() :: 공백을 포함한 출력 가능 문자인지 판별하기 2025.11.05
1228 ispunct() :: 구두점 문자인지 판별하기 2025.11.05
1227 isspace() :: 공백과 개행 같은 공백 문자인지 판별하기 2025.11.05
1226 nullptr :: 정수 0과 다른 널 포인터 표현 2025.11.05
1225 isupper() :: 대문자인지 판별하기 2025.11.06
1224 isxdigit() :: 16진수 숫자 문자인지 판별하기 2025.11.06
1223 tolower() :: 문자를 소문자로 바꾸기 2025.11.06
1222 toupper() :: 문자를 대문자로 바꾸기 2025.11.06
1221 short와 long :: 이름보다 범위를 확인하기 2025.11.06
1220 strtol() :: 문자열을 long 정수로 변환하기 2025.11.07
1219 strtoll() :: 문자열을 long long 정수로 변환하기 2025.11.07
1218 strtoul() :: 문자열을 unsigned long 정수로 변환하기 2025.11.07
1217 strtoull() :: 문자열을 unsigned long long 정수로 변환하기 2025.11.07
1216 auto :: 초기값에서 자료형 추론하기 2025.11.07
1215 strtoimax() :: 문자열을 최대 폭 부호 정수로 변환하기 2025.11.08
1214 strtoumax() :: 문자열을 최대 폭 비부호 정수로 변환하기 2025.11.08
1213 strtof() :: 문자열을 float 실수로 변환하기 2025.11.08
1212 strtod() :: 문자열을 double 실수로 변환하기 2025.11.08
1211 char :: 문자와 작은 정수를 구분하기 2025.11.09
1210 set -euo pipefail :: 셸 스크립트 실패를 빨리 발견하기 2025.11.09
1209 strtold() :: 문자열을 long double 실수로 변환하기 2025.11.09
1208 $? :: 셸에서 바로 전 명령의 종료 상태 확인하기 2025.11.09
1207 abs() :: int 정수의 절댓값 구하기 2025.11.09
1206 decltype :: 식의 자료형을 그대로 확인하기 2025.11.10
1205 labs() :: long 정수의 절댓값 구하기 2025.11.10
1204 llabs() :: long long 정수의 절댓값 구하기 2025.11.10
1203 div() :: int 정수의 몫과 나머지 함께 구하기 2025.11.10
1202 _Bool :: 참과 거짓을 저장하기 2025.11.10
1201 ldiv() :: long 정수의 몫과 나머지 함께 구하기 2025.11.14
1200 lldiv() :: long long 정수의 몫과 나머지 함께 구하기 2025.11.14
1199 printf() :: 형식 문자열을 사용해 표준 출력에 쓰기 2025.11.14
1198 fprintf() :: 형식화한 내용을 지정한 FILE 스트림에 쓰기 2025.11.14
1197 using :: 긴 자료형에 별칭 붙이기 2025.11.16
1196 snprintf() :: 버퍼 크기를 제한해 형식화한 문자열 만들기 2025.11.16
1195 dprintf() :: 파일 디스크립터에 형식화해서 출력하기 2025.11.16
1194 asprintf() :: 필요한 버퍼를 할당해 형식화한 문자열 만들기 2025.11.16
1193 vprintf() :: 가변 인수 목록으로 표준 출력하기 2025.11.17
1192 float와 double :: 소수의 정밀도 확인하기 2025.11.17
1191 vfprintf() :: 가변 인수 목록으로 스트림에 출력하기 2025.11.17
1190 vsnprintf() :: 가변 인수 목록으로 길이 제한 문자열 만들기 2025.11.17
1189 vdprintf() :: 가변 인수 목록을 디스크립터로 출력하기 2025.11.17
1188 vasprintf() :: 가변 인수 목록으로 새 문자열 할당하기 2025.11.19
1187 enum class :: 범위가 있는 열거형 만들기 2025.11.19
1186 scanf() :: 표준 입력에서 형식에 맞춰 값 읽기 2025.11.19
1185 fscanf() :: FILE 스트림에서 형식에 맞춰 값 읽기 2025.11.19
1184 sscanf() :: 문자열에서 형식에 맞춰 값 추출하기 2025.11.19
1183 vscanf() :: 가변 인수 목록으로 표준 입력 해석하기 2025.11.20
1182 sizeof :: 자료형과 객체의 바이트 수 2025.11.20
1181 vfscanf() :: 가변 인수 목록으로 FILE 입력 해석하기 2025.11.20
1180 vsscanf() :: 가변 인수 목록으로 문자열 해석하기 2025.11.20
1179 fgetc() :: FILE 스트림에서 문자 하나 읽기 2025.11.20
1178 getc() :: 스트림에서 다음 문자 읽기 2025.11.21
1177 constexpr :: 컴파일 때 계산할 수 있는 값 2025.11.21
1176 getchar() :: 표준 입력에서 문자 하나 읽기 2025.11.21
1175 trap :: 셸 스크립트 종료 시 정리 작업하기 2025.11.21
1174 fgets() :: 크기를 제한해 한 줄 읽기 2025.11.21
1173 exec :: 현재 셸을 다른 프로그램으로 교체하기 2025.11.22
1172 size_t :: 크기와 인덱스를 담는 자료형 2025.11.22
1171 getline() :: 필요하면 버퍼를 늘려 한 줄 읽기 2025.11.22
1170 getdelim() :: 지정한 구분자까지 버퍼를 늘려 읽기 2025.11.22
1169 fread() :: FILE 스트림에서 원소 배열 읽기 2025.11.22
1168 static_assert :: 잘못된 가정을 빌드에서 잡기 2025.11.23
1167 fputc() :: FILE 스트림에 문자 하나 쓰기 2025.11.23
1166 putc() :: 스트림에 문자 하나 출력하기 2025.11.23
1165 putchar() :: 표준 출력에 문자 하나 쓰기 2025.11.23
1164 fputs() :: 널 종료 문자열을 스트림에 쓰기 2025.11.23
1163 int32_t :: 정확한 비트 폭이 필요할 때 2025.11.24
1162 puts() :: 문자열과 개행을 표준 출력에 쓰기 2025.11.24
1161 fwrite() :: 원소 배열을 FILE 스트림에 쓰기 2025.11.24
1160 ungetc() :: 문자 하나를 스트림 입력으로 되돌리기 2025.11.24
1159 fflush() :: 스트림의 출력 버퍼 기록하기 2025.11.25
1158 중괄호 초기화 :: 축소 변환을 진단받기 2025.11.25
1157 fseek() :: FILE 스트림의 파일 위치 바꾸기 2025.11.25
1156 fseeko() :: off_t 기반으로 FILE 위치 이동하기 2025.11.25
1155 ftell() :: FILE 스트림의 현재 위치 얻기 2025.11.26
1154 ftello() :: off_t 기반으로 FILE 현재 위치 얻기 2025.11.26
1153 정수 리터럴 :: 진법과 접미사 구분하기 2025.11.26
1152 rewind() :: 스트림 위치를 처음으로 되돌리기 2025.11.26
1151 fgetpos() :: 스트림 위치와 상태를 저장하기 2025.11.26
1150 fsetpos() :: 저장한 스트림 위치로 복원하기 2025.11.29
1149 feof() :: 스트림의 EOF 표시 확인하기 2025.11.29
1148 값 초기화 :: {}로 기본 값을 만들기 2025.11.29
1147 ferror() :: 스트림의 오류 표시 확인하기 2025.11.29
1146 clearerr() :: 스트림의 EOF와 오류 표시 지우기 2025.12.01
1145 perror() :: 현재 errno 설명을 표준 오류에 출력하기 2025.12.01
1144 setvbuf() :: FILE 스트림 버퍼링 방식 설정하기 2025.12.01
1143 정수 나눗셈 :: 소수 부분이 사라지는 위치 2025.12.01
1142 setbuf() :: FILE 스트림 버퍼 제공하기 2025.12.01
1141 flockfile() :: FILE 스트림의 내부 잠금 획득하기 2025.12.02
1140 ftrylockfile() :: FILE 스트림 잠금을 기다리지 않고 시도하기 2025.12.02
1139 "$@"와 "$*" :: 셸 함수 인수 전달 차이 2025.12.02
1138 lvalue 참조 :: 원본에 다른 이름 붙이기 2025.12.02
1137 funlockfile() :: FILE 스트림 내부 잠금 해제하기 2025.12.03
1136 read :: 셸에서 한 줄씩 안전하게 읽기 2025.12.03
1135 fmemopen() :: 메모리 버퍼를 FILE 스트림으로 열기 2025.12.03
1134 부호 혼합 비교 :: 음수와 배열 길이 비교하기 2025.12.03
1133 open_memstream() :: 동적으로 커지는 메모리 출력 스트림 만들기 2025.12.04
1132 tmpfile() :: 자동 정리되는 임시 파일 스트림 만들기 2025.12.04
1131 mkstemp() :: 충돌을 피하며 임시 파일 안전하게 만들기 2025.12.04
1130 mkdtemp() :: 충돌을 피하며 임시 디렉터리 만들기 2025.12.04
1129 const 참조 :: 복사 없이 읽기만 하기 2025.12.04
1128 time() :: 에포크 이후 현재 초 수 얻기 2025.12.05
1127 gettimeofday() :: 현재 시각을 초와 마이크로초로 얻기 2025.12.05
1126 clock_gettime() :: 선택한 시계의 현재 시각 얻기 2025.12.05
1125 clock_getres() :: 선택한 시계의 시간 해상도 얻기 2025.12.05
1124 const :: 바꾸지 않을 객체 표시하기 2025.12.05
1123 clock_settime() :: 선택한 시계의 시각 변경하기 2025.12.06
1122 nanosleep() :: 초와 나노초 단위로 실행 멈추기 2025.12.06
1121 clock_nanosleep() :: 시계를 지정해 절대 또는 상대 시간만큼 기다리기 2025.12.06
1120 sleep() :: 초 단위로 실행 멈추기 2025.12.06
1119 참조와 포인터 :: 선택적인 대상은 어떻게 표현할까 2025.12.06
1118 alarm() :: 일정 시간 뒤 SIGALRM 예약하기 2025.12.08
1117 setitimer() :: 프로세스 interval timer 설정하기 2025.12.08
1116 getitimer() :: 프로세스 interval timer 상태 조회하기 2025.12.08
1115 timer_create() :: POSIX 타이머 만들기 2025.12.08
1114 typedef :: 자료형에 의미 있는 이름 붙이기 2025.12.08
1113 timer_delete() :: POSIX 타이머 삭제하기 2025.12.09
1112 timer_settime() :: POSIX 타이머 만료 시각과 반복 주기 설정하기 2025.12.09
1111 timer_gettime() :: POSIX 타이머 남은 시간 조회하기 2025.12.09
1110 timer_getoverrun() :: POSIX 타이머 통지 누락 횟수 얻기 2025.12.09
1109 auto& :: 추론하면서 원본을 수정하기 2025.12.09
1108 localtime_r() :: 타임스탬프를 지역 시각 구조체로 변환하기 2025.12.10
1107 gmtime_r() :: 타임스탬프를 UTC 시각 구조체로 변환하기 2025.12.10
1106 mktime() :: 지역 시각 구조체를 타임스탬프로 변환하기 2025.12.10
1105 timegm() :: UTC 시각 구조체를 타임스탬프로 변환하기 2025.12.10
1104 enum :: 상태 값에 이름 붙이기 2025.12.10
1103 xargs :: 표준 입력을 명령 인수로 바꾸기 2025.12.11
1102 strftime() :: 시각 구조체를 형식화한 문자열로 만들기 2025.12.11
1101 strptime() :: 형식 문자열로 날짜와 시각 해석하기 2025.12.11
1100 범위 for 값 변수 :: 원소를 복사해서 읽기 2025.12.11
1099 Here document :: 여러 줄 입력을 명령에 전달하기 2025.12.12
1098 difftime() :: 두 타임스탬프 사이의 초 차이 구하기 2025.12.12
1097 clock() :: 프로세스가 사용한 CPU 시간 얻기 2025.12.12
1096 times() :: 프로세스와 자식의 CPU 사용 시간 조회하기 2025.12.12
1095 배열 초기화 :: 생략한 원소는 무엇이 될까 2025.12.13
1094 getrusage() :: 프로세스의 CPU와 메모리 자원 사용량 조회하기 2025.12.13
1093 tzset() :: 환경 변수에서 시간대 규칙 다시 읽기 2025.12.13
1092 wait() :: 종료한 자식 프로세스 하나 회수하기 2025.12.13
1091 waitpid() :: 지정한 자식 프로세스 상태 기다리기 2025.12.13
1090 범위 for 참조 변수 :: 원소를 제자리에서 바꾸기 2025.12.14
1089 waitid() :: 대상과 상태 종류를 지정해 자식 기다리기 2025.12.14
1088 wait3() :: 자식 상태와 자원 사용량 함께 얻기 2025.12.14
1087 wait4() :: 지정한 자식의 상태와 자원 사용량 얻기 2025.12.14
1086 getpid() :: 현재 프로세스 ID 얻기 2025.12.14
1085 배열 인덱스 :: 마지막 원소와 한 칸 뒤 구분하기 2025.12.15
1084 getppid() :: 부모 프로세스 ID 얻기 2025.12.15
1083 gettid() :: 현재 커널 스레드 ID 얻기 2025.12.15
1082 getpgid() :: 프로세스 그룹 ID 얻기 2025.12.15
1081 setpgid() :: 프로세스를 지정한 그룹으로 옮기기 2025.12.15
1080 std::array :: 길이가 자료형에 들어가는 배열 2025.12.16
1079 getpgrp() :: 현재 프로세스 그룹 ID 얻기 2025.12.16
1078 getsid() :: 세션 ID 조회하기 2025.12.16
1077 setsid() :: 새 세션과 프로세스 그룹 만들기 2025.12.16
1076 execl() :: 인수 목록으로 새 프로그램 실행하기 2025.12.16
1075 배열 길이 :: sizeof 나눗셈이 통하는 위치 2025.12.17
1074 execv() :: 인수 배열로 새 프로그램 실행하기 2025.12.17
1073 execle() :: 인수 목록과 환경 배열로 프로그램 실행하기 2025.12.17
1072 execvp() :: PATH에서 실행 파일을 찾아 인수 배열로 실행하기 2025.12.17
1071 execlp() :: PATH에서 실행 파일을 찾아 인수 목록으로 실행하기 2025.12.17
1070 std::array::at() :: 인덱스 범위를 검사하며 접근하기 2025.12.18
1069 execvpe() :: PATH와 환경 배열을 사용해 프로그램 실행하기 2025.12.18
1068 fexecve() :: 열린 실행 파일 디스크립터로 프로그램 실행하기 2025.12.18
1067 execveat() :: 디렉터리 기준 경로로 프로그램 실행하기 2025.12.18
1066 배열 매개변수 :: 주소와 길이를 함께 넘기기 2025.12.18
1065 posix_spawn() :: 프로세스 생성과 프로그램 실행을 함께 요청하기 2025.12.19
1064 posix_spawnp() :: PATH를 검색하는 방식으로 프로그램 생성하기 2025.12.19
1063 system() :: 셸을 통해 명령 문자열 실행하기 2025.12.19
1062 chmod :: 리눅스 파일 권한 변경하기 2025.12.19
1061 std::array::fill() :: 모든 원소를 같은 값으로 채우기 2025.12.19
1060 inode :: 리눅스 파일의 진짜 식별자 2025.12.20
1059 popen() :: 명령의 표준 입출력을 FILE 스트림으로 연결하기 2025.12.20
1058 pclose() :: popen 스트림을 닫고 명령 종료 상태 얻기 2025.12.20
1057 exit() :: 표준 정리 절차를 거쳐 프로세스 끝내기 2025.12.20
1056 배열 복사 :: 포인터 대입과 원소 복사의 차이 2025.12.20
1055 atexit() :: 정상 종료 시 호출할 함수 등록하기 2025.12.21
1054 abort() :: 비정상 종료를 발생시키기 2025.12.21
1053 getenv() :: 환경 변수 문자열 읽기 2025.12.21
1052 secure_getenv() :: 보안 실행 환경을 고려해 환경 변수 읽기 2025.12.21
1051 std::array::data() :: 연속 저장 공간을 포인터로 넘기기 2025.12.21
1050 setenv() :: 환경 변수 값 설정하기 2025.12.22
1049 unsetenv() :: 환경 변수 제거하기 2025.12.22
1048 clearenv() :: 환경 변수 목록 비우기 2025.12.22
1047 getopt() :: 짧은 명령행 옵션 해석하기 2025.12.22
1046 2차원 배열 :: 행과 열을 나눠 순회하기 2025.12.22
1045 getopt_long() :: 긴 이름을 가진 명령행 옵션 해석하기 2025.12.23
1044 getsubopt() :: 쉼표로 구분된 하위 옵션 해석하기 2025.12.23
1043 getrlimit() :: 프로세스 자원 한도 조회하기 2025.12.23
1042 setrlimit() :: 프로세스 자원 한도 바꾸기 2025.12.23
1041 std::array::size() :: 저장한 원소 개수 얻기 2025.12.23
1040 prlimit() :: 다른 프로세스의 자원 한도 조회와 설정하기 2025.12.24
1039 nice() :: 프로세스의 스케줄링 우선순위 조정하기 2025.12.24
1038 getpriority() :: nice 우선순위 값 조회하기 2025.12.24
1037 setpriority() :: 프로세스 집합의 nice 값 바꾸기 2025.12.24
1036 지정 초기화 :: 배열의 원하는 위치만 채우기 2025.12.24
1035 sched_getcpu() :: 현재 스레드가 실행 중인 CPU 번호 얻기 2025.12.25
1034 sched_getaffinity() :: 실행이 허용된 CPU 집합 조회하기 2025.12.25
1033 sched_setaffinity() :: 스레드가 실행할 CPU 집합 제한하기 2025.12.25
1032 std::array::empty() :: 길이가 0인 고정 배열 2025.12.25
1031 sched_yield() :: 다른 실행 가능한 스레드에 CPU 양보하기 2025.12.25
1030 uname() :: 커널과 시스템 식별 정보 얻기 2025.12.26
1029 sysinfo() :: 메모리와 시스템 부하 정보 얻기 2025.12.26
1028 sysconf() :: 런타임 시스템 설정값 조회하기 2025.12.26
1027 문자 배열 :: 널 종료 문자까지 공간 확보하기 2025.12.26
1026 pathconf() :: 특정 경로의 파일 시스템 제한 조회하기 2025.12.26
1025 심볼릭 링크 :: 다른 경로를 가리키는 파일 2025.12.27
1024 fpathconf() :: 열린 파일의 파일 시스템 제한 조회하기 2025.12.27
1023 confstr() :: 런타임 설정 문자열 얻기 2025.12.27
1022 std::array::front() :: 첫 원소 참조 얻기 2025.12.29
1021 fork() :: 현재 프로세스를 복제하기 2025.12.29
1020 getrandom() :: 커널에서 안전한 난수 바이트 얻기 2025.12.29
1019 getentropy() :: 작은 크기의 보안 난수 버퍼 채우기 2025.12.29
1018 kill() :: 프로세스 또는 그룹에 시그널 보내기 2025.12.29
1017 문자열 리터럴 :: 포인터와 수정 가능한 배열 2025.12.30
1016 killpg() :: 프로세스 그룹에 시그널 보내기 2025.12.30
1015 raise() :: 현재 실행 흐름에 시그널 발생시키기 2025.12.30
1014 sigaction() :: 시그널 처리 동작을 구조체로 지정하기 2025.12.30
1013 sigprocmask() :: 호출 스레드의 시그널 마스크 변경하기 2025.12.30
1012 std::array::back() :: 마지막 원소에 접근하기 2025.12.31
1011 sigpending() :: 처리 대기 중인 시그널 목록 얻기 2025.12.31
1010 sigsuspend() :: 일시적인 마스크로 시그널 기다리기 2025.12.31
1009 sigwait() :: 시그널 집합 중 하나를 동기적으로 기다리기 2025.12.31
1008 sigwaitinfo() :: 시그널과 부가 정보를 함께 기다리기 2026.01.01
1007 포인터 :: 주소와 그 주소의 값 구분하기 2026.01.01
1006 sigtimedwait() :: 제한 시간 안에서 시그널 기다리기 2026.01.01
1005 sigqueue() :: 정수나 포인터 값을 포함한 시그널 보내기 2026.01.01
1004 sigaltstack() :: 시그널 핸들러용 대체 스택 지정하기 2026.01.01
1003 sigemptyset() :: 비어 있는 시그널 집합 만들기 2026.01.02
1002 배열 비교 :: std::array는 원소 순서대로 비교한다 2026.01.02
1001 sigfillset() :: 모든 시그널을 포함하는 집합 만들기 2026.01.02
1000 sigaddset() :: 시그널 집합에 항목 추가하기 2026.01.02
999 sigdelset() :: 시그널 집합에서 항목 제거하기 2026.01.02
998 sigismember() :: 집합에 시그널이 포함되어 있는지 확인하기 2026.01.03
997 널 포인터 :: 가리키는 대상이 없다는 상태 2026.01.03
996 pause() :: 시그널이 전달될 때까지 기다리기 2026.01.03
995 psignal() :: 시그널 번호 설명을 표준 오류에 출력하기 2026.01.03
994 pthread_create() :: 새 POSIX 스레드 만들기 2026.01.04
993 std::to_array() :: C 배열에서 길이 추론하기 2026.01.04
992 pthread_join() :: 스레드 종료를 기다리고 반환값 회수하기 2026.01.04
991 pthread_detach() :: 스레드 종료 자원을 자동 회수하도록 설정하기 2026.01.04
990 pthread_self() :: 현재 스레드 식별자 얻기 2026.01.04
989 pthread_equal() :: 두 POSIX 스레드 ID 비교하기 2026.01.05
988 포인터 산술 :: 한 칸은 원소 하나의 크기 2026.01.05
987 execve() :: 현재 프로세스에서 새 프로그램 실행하기 2026.01.05
986 pipe() :: 프로세스 사이에 단방향 통로 만들기 2026.01.05
985 pthread_exit() :: 현재 스레드만 종료하기 2026.01.05
984 pthread_cancel() :: 스레드에 취소 요청 보내기 2026.01.06
983 중첩 std::array :: 고정 크기 행렬 만들기 2026.01.06
982 pthread_testcancel() :: 스레드 취소 지점 명시하기 2026.01.06
981 pthread_setcancelstate() :: 스레드 취소 허용 상태 설정하기 2026.01.06
980 pthread_setcanceltype() :: 스레드 취소 방식 설정하기 2026.01.08
979 pthread_sigmask() :: 스레드의 시그널 마스크 변경하기 2026.01.08
978 ptrdiff_t :: 같은 배열의 포인터 간 거리 2026.01.08
977 pthread_kill() :: 특정 스레드에 시그널 보내기 2026.01.09
976 pthread_setname_np() :: 리눅스 스레드 이름 설정하기 2026.01.09
975 pthread_getname_np() :: 리눅스 스레드 이름 조회하기 2026.01.09
974 pthread_getaffinity_np() :: 스레드의 CPU affinity 조회하기 2026.01.09
973 구조적 바인딩 :: 배열 원소에 이름 붙이기 2026.01.09
972 pthread_setaffinity_np() :: 스레드의 CPU affinity 설정하기 2026.01.10
971 pthread_attr_init() :: 스레드 속성 객체 초기화하기 2026.01.10
970 pthread_attr_destroy() :: 스레드 속성 객체 정리하기 2026.01.10
969 pthread_attr_setdetachstate() :: 스레드 분리 상태 지정하기 2026.01.10
968 const 포인터 :: 무엇을 바꾸지 못하는가 2026.01.10
967 pthread_attr_getdetachstate() :: 스레드 분리 상태 조회하기 2026.01.11
966 pthread_attr_setstacksize() :: 새 스레드의 스택 크기 설정하기 2026.01.11
965 pthread_attr_getstacksize() :: 스레드 스택 크기 속성 조회하기 2026.01.11
964 pthread_attr_setguardsize() :: 스택 경계 보호 영역 크기 설정하기 2026.01.11
963 std::span :: 주소와 길이를 함께 가진 뷰 2026.01.11
962 pthread_attr_getguardsize() :: 스택 경계 보호 영역 크기 조회하기 2026.01.14
961 pthread_getattr_np() :: 실행 중인 스레드의 속성 얻기 2026.01.14
960 pthread_getschedparam() :: 스레드 스케줄링 정책과 우선순위 얻기 2026.01.14
959 배열 포인터 :: 행 하나를 가리키는 선언 2026.01.14
958 pthread_setschedparam() :: 스레드 스케줄링 정책과 우선순위 바꾸기 2026.01.14
957 pthread_spin_init() :: 스핀락 초기화하기 2026.01.15
956 pthread_spin_destroy() :: 스핀락 자원 정리하기 2026.01.15
955 pthread_spin_lock() :: 스핀락을 얻을 때까지 반복 대기하기 2026.01.15
954 std::span::subspan() :: 부분 범위 만들기 2026.01.15
953 pthread_spin_trylock() :: 스핀락 획득을 기다리지 않고 시도하기 2026.01.15
952 pthread_spin_unlock() :: 스핀락 해제하기 2026.01.16
951 pthread_mutex_consistent() :: 강건한 뮤텍스의 공유 상태 복구 완료 알리기 2026.01.16
950 pthread_mutexattr_setrobust() :: 뮤텍스의 소유자 종료 복구 방식 설정하기 2026.01.16
949 struct :: 서로 다른 값을 하나로 묶기 2026.01.16
948 pthread_mutexattr_getrobust() :: 뮤텍스의 강건성 속성 조회하기 2026.01.17
947 pthread_mutexattr_setpshared() :: 뮤텍스의 프로세스 공유 속성 설정하기 2026.01.17
946 pthread_mutexattr_getpshared() :: 뮤텍스의 프로세스 공유 속성 조회하기 2026.01.17
945 shm_open() :: POSIX 공유 메모리 객체 열기 2026.01.17
944 std::span::first() :: 앞쪽 원소 범위 선택하기 2026.01.17
943 shm_unlink() :: POSIX 공유 메모리 이름 제거하기 2026.01.18
942 shmget() :: System V 공유 메모리 세그먼트 얻기 2026.01.18
941 shmat() :: System V 공유 메모리를 주소 공간에 연결하기 2026.01.18
940 shmdt() :: System V 공유 메모리 연결 해제하기 2026.01.18
939 구조체 포인터 :: 점 연산자와 화살표 연산자 2026.01.19
938 shmctl() :: System V 공유 메모리 상태 조회와 제어하기 2026.01.19
937 sem_init() :: 이름 없는 POSIX 세마포어 초기화하기 2026.01.19
936 sem_destroy() :: 이름 없는 POSIX 세마포어 정리하기 2026.01.19
935 sem_open() :: 이름 있는 POSIX 세마포어 열기 2026.01.19
934 std::span::last() :: 끝쪽 원소 범위 선택하기 2026.01.20
933 sem_close() :: 이름 있는 POSIX 세마포어 연결 닫기 2026.01.20
932 sem_unlink() :: 이름 있는 세마포어 이름 제거하기 2026.01.20
931 sem_wait() :: 세마포어 값을 기다렸다가 감소시키기 2026.01.20
930 sem_trywait() :: 세마포어 획득을 기다리지 않고 시도하기 2026.01.22
929 구조체 배열 :: 여러 레코드를 순서대로 저장하기 2026.01.22
928 sem_timedwait() :: 제한 시간 동안 세마포어 기다리기 2026.01.22
927 sem_post() :: 세마포어 값을 증가시켜 대기자 깨우기 2026.01.22
926 sem_getvalue() :: POSIX 세마포어의 현재 값 조회하기 2026.01.22
925 읽기 전용 span :: 뷰의 const와 원소의 const 2026.01.23
924 semget() :: System V 세마포어 집합 얻기 2026.01.23
923 semctl() :: System V 세마포어 집합 제어하기 2026.01.23
922 semop() :: System V 세마포어 연산 묶음 수행하기 2026.01.23
921 semtimedop() :: 제한 시간을 지정한 세마포어 연산 수행하기 2026.01.23
920 구조체 패딩 :: 멤버 사이에 빈 공간이 생기는 이유 2026.01.24
919 mq_open() :: POSIX 메시지 큐 열기 2026.01.24
918 mq_close() :: POSIX 메시지 큐 디스크립터 닫기 2026.01.24
917 mq_unlink() :: POSIX 메시지 큐 이름 제거하기 2026.01.25
916 mq_send() :: POSIX 메시지 큐에 우선순위와 함께 메시지 넣기 2026.01.25
915 std::int32_t :: 고정 폭 정수 선택하기 2026.01.25
914 mq_receive() :: POSIX 메시지 큐에서 메시지 받기 2026.01.25
913 mq_timedsend() :: 제한 시간을 지정해 메시지 보내기 2026.01.25
912 mq_timedreceive() :: 제한 시간을 지정해 메시지 받기 2026.01.27
911 mq_getattr() :: POSIX 메시지 큐 속성 조회하기 2026.01.27
910 union :: 같은 공간을 다른 자료형으로 사용하기 2026.01.27
909 mq_setattr() :: POSIX 메시지 큐 속성 변경하기 2026.01.27
908 mq_notify() :: 메시지 큐 도착 통지 등록하기 2026.01.27
907 msgget() :: System V 메시지 큐 얻기 2026.01.28
906 msgsnd() :: System V 메시지 큐에 메시지 보내기 2026.01.28
905 std::numeric_limits :: 정수 경계를 코드에서 얻기 2026.01.28
904 msgrcv() :: System V 메시지 큐에서 메시지 받기 2026.01.28
903 msgctl() :: System V 메시지 큐 상태와 수명 제어하기 2026.01.30
902 mkfifo() :: 이름 있는 파이프 만들기 2026.01.30
901 mkfifoat() :: 디렉터리 기준으로 FIFO 만들기 2026.01.30
900 복합 리터럴 :: 이름 없이 구조체 값 만들기 2026.01.30
899 dlopen() :: 실행 중 공유 라이브러리 열기 2026.01.30
898 dlclose() :: 공유 라이브러리 참조 해제하기 2026.01.31
897 dlsym() :: 라이브러리에서 심볼 주소 찾기 2026.01.31
896 dlerror() :: 동적 로더의 오류 메시지 읽기 2026.01.31
895 실수의 min과 lowest :: 가장 작은 값의 두 의미 2026.01.31
894 dladdr() :: 주소가 속한 라이브러리와 심볼 정보 얻기 2026.01.31
893 dl_iterate_phdr() :: 로드된 공유 객체의 프로그램 헤더 순회하기 2026.02.01
892 backtrace() :: 현재 호출 스택의 주소 수집하기 2026.02.01
891 값 전달 :: 함수가 원본 변수를 못 바꾸는 이유 2026.02.01
890 backtrace_symbols() :: 호출 스택 주소를 설명 문자열로 변환하기 2026.02.01
889 backtrace_symbols_fd() :: 호출 스택 설명을 디스크립터에 출력하기 2026.02.01
888 openlog() :: 시스템 로그 연결 속성 설정하기 2026.02.02
887 syslog() :: 우선순위와 함께 시스템 로그 기록하기 2026.02.02
886 std::cmp_less() :: 부호가 다른 정수를 안전하게 비교하기 2026.02.02
885 closelog() :: 시스템 로그 연결 닫기 2026.02.02
884 setlogmask() :: 시스템 로그 우선순위 필터 설정하기 2026.02.02
883 fnmatch() :: 파일 이름을 셸 패턴과 비교하기 2026.02.03
882 glob() :: 파일 경로 패턴을 실제 경로 목록으로 확장하기 2026.02.03
881 출력 매개변수 :: 주소로 여러 결과 돌려주기 2026.02.03
880 epoll :: 리눅스에서 많은 소켓 감시하기 2026.02.03
879 globfree() :: glob 결과의 동적 메모리 해제하기 2026.02.03
878 select() :: 여러 파일 디스크립터 기다리기 2026.02.06
877 regcomp() :: POSIX 정규식 컴파일하기 2026.02.06
876 std::in_range() :: 정수 축소 변환 전에 확인하기 2026.02.06
875 regexec() :: 컴파일된 정규식으로 문자열 검색하기 2026.02.06
874 regerror() :: POSIX 정규식 오류를 문자열로 변환하기 2026.02.06
873 regfree() :: 컴파일된 정규식 자원 해제하기 2026.02.07
872 bsearch() :: 정렬된 배열에서 이진 검색하기 2026.02.07
871 함수 포인터 :: 실행할 동작을 인수로 넘기기 2026.02.08
870 qsort() :: 비교 함수를 이용해 배열 정렬하기 2026.02.08
869 qsort_r() :: 문맥 인수를 전달하며 배열 정렬하기 2026.02.08
868 tsearch() :: 이진 탐색 트리에 항목 삽입 또는 검색하기 2026.02.08
867 tfind() :: 이진 탐색 트리에서 항목 찾기 2026.02.08
866 std::size_t :: 원소 개수와 역방향 반복 2026.02.09
865 tdelete() :: 이진 탐색 트리에서 항목 제거하기 2026.02.09
864 twalk() :: 이진 탐색 트리의 노드 순회하기 2026.02.09
863 tdestroy() :: 이진 탐색 트리와 노드 자원 해제하기 2026.02.09
862 hcreate() :: 표준 해시 테이블 생성하기 2026.02.09
861 static 지역 변수 :: 호출이 끝나도 값 유지하기 2026.02.10
860 hsearch() :: 표준 해시 테이블에서 검색 또는 삽입하기 2026.02.10
859 hdestroy() :: 표준 해시 테이블 자원 정리하기 2026.02.10
858 getuid() :: 실제 사용자 ID 조회하기 2026.02.10
857 std::ptrdiff_t :: 포인터 사이 원소 거리 2026.02.10
856 geteuid() :: 유효 사용자 ID 조회하기 2026.02.11
855 getgid() :: 실제 그룹 ID 조회하기 2026.02.11
854 getegid() :: 유효 그룹 ID 조회하기 2026.02.11
853 getgroups() :: 보조 그룹 ID 목록 조회하기 2026.02.11
852 블록 범위 :: 같은 이름이 다른 변수를 가릴 때 2026.02.12
851 getresuid() :: 실제와 유효 및 저장된 사용자 ID 얻기 2026.02.12
850 getresgid() :: 실제와 유효 및 저장된 그룹 ID 얻기 2026.02.12
849 setuid() :: 프로세스 사용자 ID 바꾸기 2026.02.12
848 seteuid() :: 유효 사용자 ID 바꾸기 2026.02.12
847 char 출력 :: 문자와 숫자로 보는 두 방법 2026.02.14
846 setgid() :: 프로세스 그룹 ID 바꾸기 2026.02.14
845 setegid() :: 유효 그룹 ID 바꾸기 2026.02.14
844 setgroups() :: 보조 그룹 목록 설정하기 2026.02.14
843 getpwnam_r() :: 사용자 이름으로 계정 정보 안전하게 조회하기 2026.02.15
842 열거 상수 :: 고정 배열 길이에 이름 붙이기 2026.02.15
841 getpwuid_r() :: 사용자 ID로 계정 정보 안전하게 조회하기 2026.02.15
840 getgrnam_r() :: 그룹 이름으로 그룹 정보 안전하게 조회하기 2026.02.15
839 getgrgid_r() :: 그룹 ID로 그룹 정보 안전하게 조회하기 2026.02.15
838 initgroups() :: 사용자의 보조 그룹 목록 초기화하기 2026.02.16
837 std::byte :: 숫자가 아니라 원시 바이트 표현하기 2026.02.16
836 getgrouplist() :: 사용자가 속한 그룹 목록 얻기 2026.02.16
835 getlogin_r() :: 로그인 사용자 이름을 버퍼에 얻기 2026.02.16
834 setlocale() :: 프로세스 로케일 선택하기 2026.02.16
833 newlocale() :: 별도 로케일 객체 만들기 2026.02.17
_Alignof :: 크기와 정렬 요구 구분하기 2026.02.17
831 duplocale() :: 로케일 객체 복제하기 2026.02.17
830 freelocale() :: 로케일 객체 해제하기 2026.02.17
829 uselocale() :: 현재 스레드의 로케일 객체 선택하기 2026.02.17
828 localeconv() :: 숫자와 통화 표기 규칙 조회하기 2026.02.18
827 문자열 리터럴 :: 읽기 전용 배열과 복사본 2026.02.18
826 nl_langinfo() :: 선택한 로케일 정보 항목 읽기 2026.02.18
825 iconv_open() :: 문자 인코딩 변환 핸들 만들기 2026.02.18
824 iconv() :: 입력 바이트열의 문자 인코딩 변환하기 2026.02.18
823 비트 시프트 :: 마스크와 이동 횟수 확인하기 2026.02.19
822 iconv_close() :: 문자 인코딩 변환 핸들 닫기 2026.02.19
821 mbrtowc() :: 멀티바이트 문자를 와이드 문자로 변환하기 2026.02.19
820 wcrtomb() :: 와이드 문자를 멀티바이트 문자로 변환하기 2026.02.19
819 mbsrtowcs() :: 멀티바이트 문자열을 와이드 문자열로 변환하기 2026.02.19
818 std::string::data() :: 수정 가능한 연속 문자 공간 2026.02.20
817 wcsrtombs() :: 와이드 문자열을 멀티바이트 문자열로 변환하기 2026.02.20
816 mbsinit() :: 멀티바이트 변환 상태가 초기 상태인지 확인하기 2026.02.20
815 wcwidth() :: 와이드 문자 하나의 화면 칸 수 구하기 2026.02.20
814 wcswidth() :: 와이드 문자열의 화면 칸 수 구하기 2026.02.20
813 단락 평가 :: 조건 순서로 잘못된 접근 막기 2026.02.21
812 acos() :: 역코사인 계산하기 (double) 2026.02.21
811 acosh() :: 역쌍곡코사인 계산하기 (double) 2026.02.21
810 asin() :: 역사인 계산하기 (double) 2026.02.21
809 asinh() :: 역쌍곡사인 계산하기 (double) 2026.02.21
808 std::initializer_list :: 중괄호 목록을 인수로 받기 2026.02.22
807 atan() :: 역탄젠트 계산하기 (double) 2026.02.22
806 atan2() :: 두 좌표의 방향각 계산하기 (double) 2026.02.22
805 atanh() :: 역쌍곡탄젠트 계산하기 (double) 2026.02.22
804 cbrt() :: 세제곱근 계산하기 (double) 2026.02.22
803 배열 검색 :: 찾지 못한 경우를 길이로 표현하기 2026.02.23
802 ceil() :: 양의 무한대 방향 정수 올림 계산하기 (double) 2026.02.23
801 copysign() :: 다른 수의 부호 복사 계산하기 (double) 2026.02.23
800 cos() :: 코사인 계산하기 (double) 2026.02.24
799 cosh() :: 쌍곡코사인 계산하기 (double) 2026.02.24
798 std::pair :: 두 값을 한 결과로 반환하기 2026.02.24
797 erf() :: 오차 함수 계산하기 (double) 2026.02.25
796 erfc() :: 상보 오차 함수 계산하기 (double) 2026.02.25
795 exp() :: 자연 지수 계산하기 (double) 2026.02.25
794 exp2() :: 밑이 2인 지수 계산하기 (double) 2026.02.25
793 배열 뒤집기 :: 양 끝 원소를 교환하기 2026.02.26
792 expm1() :: 작은 입력에서도 정밀한 exp(x)-1 계산하기 (double) 2026.02.26
791 fabs() :: 부동소수점 절댓값 계산하기 (double) 2026.02.26
790 fdim() :: 두 실수 차이의 양수 부분 계산하기 (double) 2026.02.26
789 std::tuple :: 서로 다른 자료형 여러 개 묶기 2026.02.26
788 floor() :: 음의 무한대 방향 정수 내림 계산하기 (double) 2026.02.27
787 fma() :: 한 번 반올림하는 곱셈 덧셈 계산하기 (double) 2026.02.27
786 fmax() :: NaN 규칙을 적용한 실수 최댓값 계산하기 (double) 2026.02.27
785 fmin() :: NaN 규칙을 적용한 실수 최솟값 계산하기 (double) 2026.02.27
784 배열 최솟값 :: 초기값을 첫 원소에서 가져오기 2026.02.27
783 fmod() :: 나눗셈의 부동소수점 나머지 계산하기 (double) 2026.02.28
782 frexp() :: 가수와 2의 지수 분리 계산하기 (double) 2026.02.28
781 hypot() :: 오버플로를 줄인 직각삼각형 빗변 계산하기 (double) 2026.02.28
780 ldexp() :: 2의 거듭제곱 배수 계산하기 (double) 2026.02.28
779 open() :: 경로를 열어 파일 디스크립터 얻기 2026.03.01
778 openat() :: 디렉터리 디스크립터를 기준으로 파일 열기 2026.03.01
777 openat2() :: 경로 해석 조건을 제한하면서 파일 열기 2026.03.01
776 creat() :: 파일을 새로 만들거나 내용을 비우고 열기 2026.03.01
775 close() :: 열린 파일 디스크립터 닫기 2026.03.01
774 close_range() :: 디스크립터 범위를 한 번에 닫기 2026.03.02
773 dup() :: 기존 파일 디스크립터 복제하기 2026.03.02
772 dup2() :: 지정한 번호로 파일 디스크립터 복제하기 2026.03.02
771 recvfrom() :: UDP 데이터와 보낸 주소 함께 받기 2026.03.02
770 send() :: 연결된 소켓으로 데이터 보내기 2026.03.02
769 dup3() :: close-on-exec 플래그와 함께 디스크립터 복제하기 2026.03.03
768 recv() :: 연결된 소켓에서 데이터 받기 2026.03.03
767 sendto() :: UDP 목적지를 지정해서 보내기 2026.03.03
766 fcntl() :: 파일 디스크립터 플래그와 잠금 제어하기 2026.03.03
765 std::variant :: 정해진 여러 자료형 중 하나 보관하기 2026.03.03
764 flock() :: 열린 파일에 공유 또는 배타 잠금 설정하기 2026.03.04
763 lockf() :: 파일의 바이트 범위에 잠금 걸기 2026.03.04
762 fileno() :: FILE 스트림에서 파일 디스크립터 얻기 2026.03.04
761 fdopen() :: 기존 디스크립터를 FILE 스트림으로 감싸기 2026.03.04
760 fclose() :: FILE 스트림을 닫고 버퍼 기록하기 2026.03.04
759 freopen() :: FILE 스트림을 다른 파일에 다시 연결하기 2026.03.05
758 read() :: 파일 디스크립터에서 바이트 읽기 2026.03.05
757 write() :: 파일 디스크립터에 바이트 쓰기 2026.03.05
756 pread() :: 파일 오프셋을 바꾸지 않고 지정 위치 읽기 2026.03.05
755 pwrite() :: 파일 오프셋을 바꾸지 않고 지정 위치 쓰기 2026.03.05
754 readv() :: 여러 버퍼로 한 번에 분산해서 읽기 2026.03.06
753 writev() :: 여러 버퍼를 한 번에 모아서 쓰기 2026.03.06
752 preadv() :: 지정 위치의 데이터를 여러 버퍼로 읽기 2026.03.06
751 pwritev() :: 여러 버퍼를 지정 위치에 기록하기 2026.03.06
750 preadv2() :: 플래그를 지정한 위치 기반 벡터 읽기 2026.03.07
749 pwritev2() :: 플래그를 지정한 위치 기반 벡터 쓰기 2026.03.07
748 lseek() :: 열린 파일의 현재 오프셋 이동하기 2026.03.07
747 sendfile() :: 파일 데이터를 커널 안에서 다른 디스크립터로 보내기 2026.03.07
746 copy_file_range() :: 커널 안에서 파일 구간 복사하기 2026.03.07
745 free() :: 할당한 메모리 반환하기 2026.03.08
744 splice() :: 파이프와 파일 사이 데이터를 커널에서 이동하기 2026.03.08
743 malloc() :: 동적 메모리 할당하기 2026.03.08
742 tee() :: 파이프 데이터를 소비하지 않고 다른 파이프로 복제하기 2026.03.08
741 vmsplice() :: 사용자 버퍼를 파이프에 연결하기 2026.03.08
740 readahead() :: 필요해질 파일 데이터를 미리 읽도록 요청하기 2026.03.09
739 fsync() :: 파일 데이터와 메타데이터를 저장 장치에 반영하기 2026.03.09
738 fdatasync() :: 파일 데이터를 중심으로 저장 장치에 동기화하기 2026.03.09
737 sync() :: 파일 시스템의 변경 내용을 동기화하기 2026.03.09
736 syncfs() :: 특정 파일 시스템의 변경 내용을 동기화하기 2026.03.09
735 sync_file_range() :: 파일의 특정 구간 기록을 제어하기 2026.03.10
734 truncate() :: 경로가 가리키는 파일 길이 바꾸기 2026.03.10
733 lgamma() :: 감마 함수 절댓값의 로그 계산하기 (double) 2026.03.10
732 ftruncate() :: 열린 파일의 길이 바꾸기 2026.03.10
731 fallocate() :: 파일 저장 공간을 미리 확보하거나 해제하기 2026.03.10
730 posix_fallocate() :: POSIX 방식으로 파일 공간 확보하기 2026.03.11
729 posix_fadvise() :: 파일 접근 패턴을 커널에 알려주기 2026.03.11
728 stat() :: 경로가 가리키는 파일 정보 읽기 2026.03.11
727 lstat() :: 심볼릭 링크 자체의 파일 정보 읽기 2026.03.11
726 fstat() :: 열린 파일 디스크립터의 메타데이터 읽기 2026.03.11
725 fstatat() :: 기준 디렉터리와 플래그를 지정해 파일 정보 읽기 2026.03.12
724 statx() :: 확장된 파일 메타데이터 조회하기 2026.03.12
723 statfs() :: 경로가 속한 파일 시스템의 상태 읽기 2026.03.12
722 fopen() :: 표준 입출력으로 파일 열기 2026.03.12
721 fstatfs() :: 열린 파일이 속한 파일 시스템 상태 읽기 2026.03.12
720 statvfs() :: 이식 가능한 파일 시스템 용량 정보 읽기 2026.03.13
719 fstatvfs() :: 디스크립터로 파일 시스템 용량 조회하기 2026.03.13
718 mkdir() :: 새 디렉터리 만들기 2026.03.13
717 mkdirat() :: 기준 디렉터리 아래에 새 디렉터리 만들기 2026.03.13
716 rmdir() :: 비어 있는 디렉터리 제거하기 2026.03.13
715 rename() :: 파일 이름이나 경로 바꾸기 2026.03.14
714 renameat() :: 기준 디렉터리들을 지정해 경로 이름 바꾸기 2026.03.14
713 renameat2() :: 교환과 덮어쓰기 제한을 지정해 이름 바꾸기 2026.03.14
712 unlink() :: 파일 이름 하나 제거하기 2026.03.14
711 unlinkat() :: 디렉터리 기준으로 파일 또는 빈 디렉터리 제거하기 2026.03.14
710 remove() :: 파일이나 빈 디렉터리 제거하기 2026.03.15
709 link() :: 같은 inode를 가리키는 하드 링크 만들기 2026.03.15
708 linkat() :: 기준 디렉터리와 플래그를 지정해 하드 링크 만들기 2026.03.15
707 symlink() :: 다른 경로를 가리키는 심볼릭 링크 만들기 2026.03.15
706 symlinkat() :: 기준 디렉터리 아래에 심볼릭 링크 만들기 2026.03.15
705 readlink() :: 심볼릭 링크에 기록된 경로 읽기 2026.03.16
704 readlinkat() :: 디렉터리 기준으로 심볼릭 링크 경로 읽기 2026.03.16
703 realpath() :: 상대 경로와 심볼릭 링크를 정규 경로로 풀기 2026.03.16
702 basename() :: 경로에서 마지막 파일 이름 부분 얻기 2026.03.16
701 dirname() :: 경로에서 디렉터리 부분 얻기 2026.03.16
700 log() :: 자연로그 계산하기 (double) 2026.03.17
699 chdir() :: 현재 작업 디렉터리 바꾸기 2026.03.17
698 fchdir() :: 열린 디렉터리 디스크립터로 작업 위치 바꾸기 2026.03.17
697 getcwd() :: 현재 작업 디렉터리의 절대 경로 얻기 2026.03.17
696 opendir() :: 디렉터리 스트림 열기 2026.03.17
695 fdopendir() :: 열린 디렉터리 디스크립터를 스트림으로 감싸기 2026.03.18
694 readdir() :: 디렉터리 항목 하나씩 읽기 2026.03.18
693 closedir() :: 디렉터리 스트림 닫기 2026.03.18
692 rewinddir() :: 디렉터리 스트림을 처음으로 되돌리기 2026.03.18
691 seekdir() :: 디렉터리 스트림의 저장된 위치로 이동하기 2026.03.18
690 strtok_r() :: 문자열을 안전하게 토큰으로 나누기 2026.03.19
689 telldir() :: 디렉터리 스트림의 현재 위치 얻기 2026.03.19
688 dirfd() :: 디렉터리 스트림의 디스크립터 얻기 2026.03.19
687 scandir() :: 조건에 맞는 디렉터리 항목을 배열로 수집하기 2026.03.19
686 scandirat() :: 기준 디렉터리에서 항목을 수집하고 정렬하기 2026.03.19
685 alphasort() :: 디렉터리 항목을 이름 순으로 비교하기 2026.03.20
684 versionsort() :: 디렉터리 이름의 숫자를 버전처럼 비교하기 2026.03.20
683 nftw() :: 디렉터리 트리를 순회하며 콜백 실행하기 2026.03.20
682 access() :: 실제 사용자 기준으로 파일 접근 가능성 확인하기 2026.03.20
681 faccessat() :: 디렉터리 기준으로 접근 권한 확인하기 2026.03.20
680 log10() :: 상용로그 계산하기 (double) 2026.03.21
679 log1p() :: 작은 입력에서도 정밀한 log(1+x) 계산하기 (double) 2026.03.21
678 faccessat2() :: 플래그를 지원하는 접근 권한 확인하기 2026.03.21
677 배열 평균 :: 합계 자료형과 나눗셈 위치 2026.03.21
676 log2() :: 밑이 2인 로그 계산하기 (double) 2026.03.22
675 fchmod() :: 열린 파일의 권한 비트 변경하기 2026.03.22
674 fchmodat() :: 디렉터리 기준으로 파일 권한 바꾸기 2026.03.22
673 chown() :: 파일 소유자와 그룹 바꾸기 2026.03.22
672 fchown() :: 열린 파일의 소유자와 그룹 바꾸기 2026.03.22
671 lchown() :: 심볼릭 링크 자체의 소유자 바꾸기 2026.03.23
670 fchownat() :: 기준 디렉터리와 플래그로 소유자 바꾸기 2026.03.23
669 umask() :: 새 파일의 기본 권한 마스크 설정하기 2026.03.23
668 utimensat() :: 경로의 접근 시간과 수정 시간 정밀하게 바꾸기 2026.03.23
667 futimens() :: 열린 파일의 접근 시간과 수정 시간 바꾸기 2026.03.23
666 utimes() :: 마이크로초 단위로 파일 시간 변경하기 2026.03.24
665 getxattr() :: 파일의 확장 속성 값 읽기 2026.03.24
664 logb() :: 부동소수점의 지수 계산하기 (double) 2026.03.24
663 fgetxattr() :: 열린 파일의 확장 속성 읽기 2026.03.24
662 lgetxattr() :: 심볼릭 링크 자체의 확장 속성 읽기 2026.03.24
661 setxattr() :: 파일에 확장 속성 기록하기 2026.03.25
660 fsetxattr() :: 열린 파일에 확장 속성 기록하기 2026.03.25
659 lsetxattr() :: 심볼릭 링크 자체에 확장 속성 기록하기 2026.03.25
658 listxattr() :: 파일의 확장 속성 이름 목록 얻기 2026.03.25
657 flistxattr() :: 열린 파일의 확장 속성 이름 목록 얻기 2026.03.25
656 llistxattr() :: 심볼릭 링크 자체의 확장 속성 목록 얻기 2026.03.26
655 removexattr() :: 파일의 확장 속성 제거하기 2026.03.26
654 modf() :: 정수 부분과 소수 부분 분리 계산하기 (double) 2026.03.26
653 fremovexattr() :: 열린 파일의 확장 속성 제거하기 2026.03.26
652 lremovexattr() :: 심볼릭 링크 자체의 확장 속성 제거하기 2026.03.26
651 nearbyint() :: 현재 반올림 모드의 정수 반올림 계산하기 (double) 2026.03.27
650 std::bitset :: 고정 개수의 비트 상태 보관하기 2026.03.27
649 nextafter() :: 지정 방향의 다음 표현 가능 실수 계산하기 (double) 2026.03.27
648 pow() :: 실수 거듭제곱 계산하기 (double) 2026.03.27
647 remainder() :: 가장 가까운 몫을 기준으로 한 나머지 계산하기 (double) 2026.03.27
646 socket() :: 통신용 소켓 만들기 2026.03.28
645 socketpair() :: 서로 연결된 소켓 두 개 만들기 2026.03.28
644 bind() :: 소켓에 로컬 주소와 포트 연결하기 2026.03.28
643 listen() :: 연결 요청을 받을 수동 소켓으로 전환하기 2026.03.28
642 accept() :: 대기 중인 연결을 받아 새 소켓 얻기 2026.03.28
641 accept4() :: 논블로킹 플래그와 함께 연결 받기 2026.03.29
640 connect() :: 소켓을 상대 주소에 연결하기 2026.03.29
639 rint() :: 반올림 모드와 예외를 반영한 정수 반올림 계산하기 (double) 2026.03.29
638 shutdown() :: 소켓의 읽기 또는 쓰기 방향 종료하기 2026.03.29
637 getsockname() :: 소켓에 연결된 로컬 주소 얻기 2026.03.29
636 유연한 배열 멤버 :: 구조체 뒤에 가변 길이 붙이기 2026.03.30
635 round() :: 중간값을 0에서 멀어지게 반올림 계산하기 (double) 2026.03.30
634 scalbn() :: 기수의 정수 지수로 크기 조정 계산하기 (double) 2026.03.30
633 sin() :: 사인 계산하기 (double) 2026.03.30
632 sinh() :: 쌍곡사인 계산하기 (double) 2026.03.30
631 집합체 초기화 :: 멤버를 순서대로 채우기 2026.03.31
630 sqrt() :: 제곱근 계산하기 (double) 2026.03.31
629 tan() :: 탄젠트 계산하기 (double) 2026.03.31
628 tanh() :: 쌍곡탄젠트 계산하기 (double) 2026.03.31
627 tgamma() :: 감마 함수 계산하기 (double) 2026.03.31
626 getpeername() :: 연결된 상대방 주소 얻기 2026.04.02
625 getsockopt() :: 소켓 옵션 값 조회하기 2026.04.02
624 setsockopt() :: 소켓 옵션 설정하기 2026.04.02
623 sendmsg() :: 메시지 구조체와 부가 정보를 함께 보내기 2026.04.02
622 recvmsg() :: 분산 버퍼와 제어 메시지로 데이터 받기 2026.04.02
621 std::vector :: 크기가 변하는 연속 배열 2026.04.03
620 emplace_back() :: vector 안에서 원소 바로 만들기 2026.04.03
619 sendmmsg() :: 여러 메시지를 한 시스템 호출로 보내기 2026.04.03
618 recvmmsg() :: 여러 메시지를 한 시스템 호출로 받기 2026.04.03
617 inet_pton() :: 문자열 IP 주소를 바이너리 주소로 변환하기 2026.04.03
616 inet_ntop() :: 바이너리 IP 주소를 문자열로 변환하기 2026.04.04
615 htons() :: 16비트 정수를 네트워크 바이트 순서로 변환하기 2026.04.04
614 htonl() :: 32비트 정수를 네트워크 바이트 순서로 변환하기 2026.04.04
613 ntohs() :: 16비트 네트워크 정수를 호스트 순서로 변환하기 2026.04.04
612 ntohl() :: 32비트 네트워크 정수를 호스트 순서로 변환하기 2026.04.04
611 getaddrinfo() :: 호스트 이름과 서비스에서 주소 목록 얻기 2026.04.05
610 freeaddrinfo() :: 주소 조회 결과 목록 해제하기 2026.04.05
609 gai_strerror() :: 주소 조회 오류 코드를 문자열로 바꾸기 2026.04.05
608 getnameinfo() :: 소켓 주소를 호스트와 서비스 이름으로 바꾸기 2026.04.05
607 getifaddrs() :: 네트워크 인터페이스 주소 목록 읽기 2026.04.05
606 freeifaddrs() :: 인터페이스 주소 목록 해제하기 2026.04.07
605 if_nametoindex() :: 인터페이스 이름을 인덱스로 변환하기 2026.04.07
604 if_indextoname() :: 인터페이스 인덱스를 이름으로 변환하기 2026.04.07
603 if_nameindex() :: 인터페이스 이름과 인덱스 목록 얻기 2026.04.07
602 if_freenameindex() :: 인터페이스 이름 목록 해제하기 2026.04.07
601 gethostname() :: 현재 시스템의 호스트 이름 얻기 2026.04.08
600 sethostname() :: 시스템 호스트 이름 바꾸기 2026.04.08
599 poll() :: 파일 디스크립터 배열의 준비 상태 기다리기 2026.04.08
598 ppoll() :: 시그널 마스크와 정밀한 제한 시간으로 이벤트 기다리기 2026.04.08
597 pselect() :: 시그널 마스크를 원자적으로 바꾸고 디스크립터 기다리기 2026.04.09
596 std::unique_ptr :: 소유자가 하나인 스마트 포인터 2026.04.09
595 epoll_create1() :: 플래그를 지정해 epoll 인스턴스 만들기 2026.04.09
594 std::move() :: 이동을 허용하는 캐스팅 2026.04.09
593 epoll_ctl() :: epoll 감시 대상 추가와 변경 및 제거하기 2026.04.09
592 epoll_wait() :: 준비된 epoll 이벤트 기다리기 2026.04.10
591 epoll_pwait() :: 시그널 마스크를 지정해 epoll 이벤트 기다리기 2026.04.10
590 epoll_pwait2() :: 나노초 제한 시간으로 epoll 이벤트 기다리기 2026.04.10
589 eventfd() :: 정수 카운터 기반 이벤트 디스크립터 만들기 2026.04.10
588 eventfd_read() :: eventfd 카운터 값 읽기 2026.04.11
587 eventfd_write() :: eventfd 카운터에 값 더하기 2026.04.11
586 timerfd_create() :: 타이머 만료를 읽을 수 있는 디스크립터 만들기 2026.04.11
585 timerfd_settime() :: timerfd의 시작 시간과 반복 주기 지정하기 2026.04.11
584 timerfd_gettime() :: timerfd의 남은 시간과 반복 주기 조회하기 2026.04.11
583 inotify_init1() :: 파일 변경 감시 인스턴스 만들기 2026.04.12
582 inotify_add_watch() :: 파일이나 디렉터리에 감시 항목 추가하기 2026.04.12
581 inotify_rm_watch() :: 파일 변경 감시 항목 제거하기 2026.04.12
580 fanotify_init() :: 파일 시스템 이벤트 통지 그룹 만들기 2026.04.12
579 fanotify_mark() :: 파일 시스템 이벤트 감시 범위 지정하기 2026.04.12
578 signalfd() :: 시그널을 파일 디스크립터로 받기 2026.04.13
577 calloc() :: 0으로 초기화된 원소 배열 할당하기 2026.04.13
576 realloc() :: 기존 동적 메모리 블록 크기 바꾸기 2026.04.13
575 reallocarray() :: 원소 수와 크기를 분리해 배열 메모리 재할당하기 2026.04.14
574 aligned_alloc() :: 지정한 정렬 경계에 맞춰 메모리 할당하기 2026.04.14
573 posix_memalign() :: POSIX 방식으로 정렬된 메모리 할당하기 2026.04.14
572 malloc_usable_size() :: 할당 블록이 실제 사용할 수 있는 크기 조회하기 2026.04.14
571 malloc_trim() :: 힙의 사용하지 않는 페이지를 운영체제에 반환하기 2026.04.14
570 malloc_info() :: 할당기의 상태를 XML로 출력하기 2026.04.15
569 memcpy() :: 겹치지 않는 메모리 영역 복사하기 2026.04.15
568 람다 표현식 :: 이름 없는 함수를 바로 만들기 2026.04.15
567 memmove() :: 겹칠 수 있는 메모리 영역 안전하게 복사하기 2026.04.15
566 memset() :: 메모리 영역을 같은 바이트로 채우기 2026.04.15
565 memcmp() :: 두 메모리 영역을 바이트 단위로 비교하기 2026.04.16
564 memchr() :: 메모리 범위에서 특정 바이트 찾기 2026.04.16
563 memrchr() :: 메모리 범위의 뒤에서 특정 바이트 찾기 2026.04.16
562 memmem() :: 메모리 범위 안에서 다른 바이트열 찾기 2026.04.16
561 memccpy() :: 특정 바이트까지 메모리 복사하기 2026.04.17
560 explicit_bzero() :: 최적화로 지워지지 않는 메모리 초기화하기 2026.04.17
559 mmap() :: 파일이나 익명 메모리를 주소 공간에 매핑하기 2026.04.17
558 munmap() :: 메모리 매핑 해제하기 2026.04.17
557 mremap() :: 기존 메모리 매핑 크기와 위치 바꾸기 2026.04.17
556 msync() :: 파일 매핑의 변경을 저장 장치와 동기화하기 2026.04.18
555 mprotect() :: 메모리 페이지의 접근 권한 변경하기 2026.04.18
554 madvise() :: 메모리 접근 패턴을 커널에 알려주기 2026.04.18
553 posix_madvise() :: 이식 가능한 메모리 접근 조언 전달하기 2026.04.22
552 mlock() :: 메모리 페이지가 스왑되지 않도록 잠그기 2026.04.22
551 mlock2() :: 옵션을 지정해 메모리 페이지 잠그기 2026.04.22
550 munlock() :: 메모리 페이지의 스왑 방지 잠금 해제하기 2026.04.22
549 mlockall() :: 프로세스 주소 공간의 페이지 잠그기 2026.04.22
548 munlockall() :: 프로세스의 전체 메모리 잠금 해제하기 2026.04.23
547 mincore() :: 매핑된 페이지의 메모리 상주 여부 확인하기 2026.04.23
546 memfd_create() :: 익명 메모리 파일 디스크립터 만들기 2026.04.23
545 getpagesize() :: 시스템 메모리 페이지 크기 얻기 2026.04.23
544 strlen() :: 널 종료 문자열의 바이트 길이 구하기 2026.04.24
543 strnlen() :: 최대 범위 안에서 문자열 길이 구하기 2026.04.24
542 strcpy() :: 널 종료 문자열 복사하기 2026.04.24
541 strncpy() :: 정해진 길이로 문자열 복사하고 빈 공간 채우기 2026.04.24
540 stpcpy() :: 문자열을 복사하고 끝 주소 돌려받기 2026.04.24
539 std::optional :: 값이 없을 수도 있다는 표현 2026.04.25
538 stpncpy() :: 길이 제한 복사 뒤 끝 위치 얻기 2026.04.25
537 strdup() :: 문자열을 복제해 새 메모리에 저장하기 2026.04.25
536 strndup() :: 최대 길이까지만 문자열 복제하기 2026.04.25
535 strcat() :: 문자열 뒤에 다른 문자열 이어 붙이기 2026.04.26
534 strncat() :: 제한된 바이트 수로 문자열 이어 붙이기 2026.04.26
533 strcmp() :: 두 문자열의 사전식 순서 비교하기 2026.04.26
532 strncmp() :: 지정한 길이 안에서 문자열 비교하기 2026.04.26
531 strcasecmp() :: 대소문자를 무시하고 문자열 비교하기 2026.04.26
530 strncasecmp() :: 길이를 제한해 대소문자 없이 문자열 비교하기 2026.04.27
529 strchr() :: 문자열에서 문자의 첫 위치 찾기 2026.04.27
528 strrchr() :: 문자열에서 문자의 마지막 위치 찾기 2026.04.27
527 strchrnul() :: 문자 또는 문자열 끝 위치 찾기 2026.04.27
526 strstr() :: 문자열 안에서 부분 문자열 찾기 2026.04.28
525 strcasestr() :: 대소문자를 무시하고 부분 문자열 찾기 2026.04.28
524 strpbrk() :: 지정한 문자 집합 중 처음 만나는 문자 찾기 2026.04.28
523 strspn() :: 허용 문자 집합으로 이루어진 접두 길이 구하기 2026.04.28
522 strcspn() :: 금지 문자를 만나기 전까지의 길이 구하기 2026.04.28
521 strtok() :: 구분자로 문자열을 나누고 내부 상태 유지하기 2026.04.29
520 strsep() :: 빈 필드까지 유지하며 문자열 나누기 2026.04.29
519 strcoll() :: 현재 로케일 규칙으로 문자열 비교하기 2026.04.29
518 strxfrm() :: 로케일 비교에 사용할 정렬 키 만들기 2026.04.29
517 strverscmp() :: 문자열 속 숫자를 버전처럼 비교하기 2026.04.30
516 strerror() :: 오류 번호를 설명 문자열로 변환하기 2026.04.30
515 strerror_r() :: 호출자 버퍼로 오류 설명 문자열 받기 2026.04.30
514 strsignal() :: 시그널 번호를 설명 문자열로 변환하기 2026.04.30
513 isalnum() :: 영문자 또는 숫자인지 판별하기 2026.04.30
512 NvVideoEncoder::createVideoEncoder() :: 인코더 객체 만들기 2026.05.05
511 NvVideoEncoder::setCapturePlaneFormat() :: 압축 출력 형식 정하기 2026.05.06
510 NvVideoEncoder::setOutputPlaneFormat() :: 원본 픽셀 형식 정하기 2026.05.09
509 NvVideoEncoder::setFrameRate() :: 초당 프레임 수를 분수로 지정하기 2026.05.10
508 NvVideoEncoder::setBitrate() :: 목표 비트레이트 단위 맞추기 2026.05.11
507 NvVideoEncoder::setPeakBitrate() :: VBR 최대 비트레이트 설정하기 2026.05.11
506 NvVideoEncoder::setProfile() :: H.264 프로파일 선택하기 2026.05.15
505 NvVideoEncoder::setLevel() :: 해상도와 전송량에 맞는 레벨 고르기 2026.05.16
504 NvVideoEncoder::setRateControlMode() :: CBR과 VBR 제어 모드 선택하기 2026.05.18
503 NvVideoEncoder::setIFrameInterval() :: I 프레임 간격 정하기 2026.05.19
502 NvVideoEncoder::setIDRInterval() :: 복호 참조를 끊는 프레임 주기 2026.05.20
501 NvVideoEncoder::forceIDR() :: 다음 입력에 IDR 요청하기 2026.05.20
500 NvVideoEncoder::setHWPresetType() :: 하드웨어 품질과 속도 절충 선택하기 2026.05.23
499 NvVideoEncoder::setMaxPerfMode() :: 인코더 최대 성능 모드 요청하기 2026.05.23
498 NvVideoEncoder::setNumBFrames() :: B 프레임 수와 지연의 관계 2026.05.23
497 NvVideoEncoder::setNumReferenceFrames() :: 참조 프레임 수 제한하기 2026.05.24
496 NvVideoEncoder::setInsertSpsPpsAtIdrEnabled() :: IDR에 SPS와 PPS 넣기 2026.05.24
495 NvVideoEncoder::setCABAC() :: H.264 엔트로피 부호화 선택하기 2026.05.25
494 NvVideoEncoder::setInsertAudEnabled() :: 접근 단위 구분자 삽입하기 2026.05.26
493 NvVideoEncoder::setInsertVuiEnabled() :: 영상 표시 정보 삽입 요청하기 2026.05.26
492 NvVideoEncoder::setQpRange() :: 프레임 종류별 QP 범위 정하기 2026.05.26
491 NvVideoEncoder::setSliceLength() :: 슬라이스 길이의 단위 고르기 2026.05.28
490 NvVideoEncoder::setVirtualBufferSize() :: 레이트 제어의 가상 버퍼 크기 2026.05.29
489 NvVideoEncoder::enableMotionVectorReporting() :: 모션 벡터 메타데이터 활성화 2026.05.29
488 NvVideoEncoder::getMotionVectors() :: 회수한 프레임의 모션 벡터 조회 2026.05.30
487 NvVideoDecoder::createVideoDecoder() :: 디코더 객체의 생성과 실패 검사 2026.05.30
486 NvVideoDecoder::setOutputPlaneFormat() :: 압축 입력 코덱과 버퍼 크기 2026.05.31
485 NvVideoDecoder::setCapturePlaneFormat() :: 해상도 이벤트 뒤 출력 픽셀 형식 2026.05.31
484 NvVideoDecoder::getMinimumCapturePlaneBuffers() :: 필수 capture 버퍼 수 확인하기 2026.06.02
483 NvVideoDecoder::getSAR() :: 픽셀 종횡비 읽기 2026.06.02
482 NvVideoDecoder::setFrameInputMode() :: 불완전 프레임 입력 모드 지정하기 2026.06.02
481 NvVideoDecoder::setSkipFrames() :: 프레임 건너뛰기 정책 정하기 2026.06.03
480 NvVideoDecoder::setMaxPerfMode() :: 디코더 성능 지향 모드 요청 2026.06.04
479 NvVideoDecoder::enableMetadataReporting() :: 디코딩 오류 정보 보고 켜기 2026.06.04
478 NvVideoDecoder::getMetadata() :: capture 버퍼의 디코딩 상태 조회 2026.06.05
477 NvV4l2Element::subscribeEvent() :: 해상도 변경 이벤트 구독하기 2026.06.09
476 NvV4l2Element::dqEvent() :: 이벤트 대기와 시간 제한 2026.06.11
475 NvV4l2Element::abort() :: 오류 시 양쪽 plane 즉시 중단 2026.06.11
474 NvVideoDecoder::isInError() :: 내부 오류 상태 확인하기 2026.06.12
473 NvVideoDecoder::disableDPB() :: 재정렬 버퍼를 끄기 전 확인할 조건 2026.06.15
472 NvV4l2ElementPlane::setupPlane() :: 버퍼 준비를 한 번에 처리하기 2026.06.17
471 NvV4l2ElementPlane::reqbufs() :: plane 버퍼를 직접 요청하기 2026.06.19
470 NvV4l2ElementPlane::queryBuffer() :: 요청한 버퍼의 정보 조회하기 2026.06.20
469 NvV4l2ElementPlane::exportBuffer() :: MMAP 버퍼를 DMABUF로 내보내기 2026.06.23
468 NvV4l2ElementPlane::getNthBuffer() :: 슬롯에 연결된 NvBuffer 가져오기 2026.06.23
467 NvV4l2ElementPlane::getNumBuffers() :: 실제 준비된 버퍼 수 확인하기 2026.06.23
466 NvV4l2ElementPlane::getNumPlanes() :: 한 버퍼의 메모리 plane 수 2026.06.24
465 NvV4l2ElementPlane::getFormat() :: 드라이버가 정한 형식 다시 읽기 2026.06.24
464 NvV4l2ElementPlane::getCrop() :: 보이는 영역과 할당 크기 구분하기 2026.06.25
463 NvV4l2ElementPlane::setStreamStatus() :: plane 스트리밍 시작과 중단 2026.06.25
462 NvV4l2ElementPlane::getStreamStatus() :: 현재 plane 스트림 상태 읽기 2026.06.25
461 NvV4l2ElementPlane::qBuffer() :: 채운 input 버퍼를 장치에 넘기기 2026.06.26
460 NvV4l2ElementPlane::dqBuffer() :: 장치에서 버퍼 소유권 회수하기 2026.06.26
459 NvV4l2ElementPlane::setDQThreadCallback() :: 결과 회수 콜백 등록하기 2026.06.26
458 NvV4l2ElementPlane::startDQThread() :: 버퍼 회수 스레드 시작하기 2026.06.28
457 NvV4l2ElementPlane::waitForDQThread() :: DQ 스레드 종료를 기다리기 2026.06.28
456 NvV4l2ElementPlane::stopDQThread() :: 비차단 모드 DQ 스레드 중단 2026.06.28
455 NvV4l2ElementPlane::waitAllBuffersQueued() :: 모든 버퍼 큐잉을 기다리는 조건 2026.06.29
454 NvV4l2ElementPlane::waitAllBuffersDequeued() :: 큐에 남은 버퍼 회수 대기 2026.06.29
453 NvV4l2ElementPlane::deinitPlane() :: 버퍼 매핑과 슬롯 정리하기 2026.06.30
452 NvV4l2ElementPlane::getBufType() :: output과 capture의 버퍼 타입 읽기 2026.07.04
451 NvV4l2ElementPlane::getNumQueuedBuffers() :: 현재 장치에 맡긴 버퍼 개수 보기 2026.07.04
450 NvBufSurfaceCreate() :: NV12 surface 한 장 할당하기 2026.07.05
449 NvBufSurfaceAllocate() :: 확장 할당 정보 사용하기 2026.07.06
448 NvBufSurfaceDestroy() :: 소유한 surface 해제하기 2026.07.06
447 NvBufSurfaceMap() :: CPU에서 읽을 주소 얻기 2026.07.06
446 NvBufSurfaceUnMap() :: 매핑 주소 사용 끝내기 2026.07.08
445 NvBufSurfaceSyncForCpu() :: 장치가 쓴 값을 CPU로 읽기 2026.07.08
444 NvBufSurfaceSyncForDevice() :: CPU 수정 내용을 장치에 넘기기 2026.07.09
443 NvBufSurfaceFromFd() :: DMABUF FD에서 surface 찾기 2026.07.09
442 NvBufSurfaceCopy() :: 같은 크기 surface 내용 복사 2026.07.10
441 NvBufSurfaceMemSet() :: plane을 바이트 값으로 채우기 2026.07.10
440 NvBufSurface2Raw() :: 한 plane을 CPU 버퍼로 복사 2026.07.11
439 Raw2NvBufSurface() :: 원시 plane 데이터를 surface에 넣기 2026.07.11
438 NvBufSurfaceMapEglImage() :: surface를 EGLImage로 연결하기 2026.07.13
437 NvBufSurfaceUnMapEglImage() :: EGLImage 자원 정리하기 2026.07.13
436 pitch :: 영상의 가로 길이와 행 간격 구분하기 2026.07.13
435 NvBufSurfacePlaneParams :: plane별 크기와 오프셋 2026.07.13
434 numFilled :: 배치 용량과 유효 프레임 수 2026.07.15
433 bufferDesc :: surface의 DMABUF 번호 확인하기 2026.07.15
432 NvBufSurfTransformSetSessionParams() :: VIC 변환 세션 선택하기 2026.07.15
431 NvBufSurfTransformGetSessionParams() :: 현재 변환 설정 조회 2026.07.16
430 NvBufSurfTransform() :: 전체 프레임 크기 바꾸기 2026.07.17
429 src_rect :: 원본에서 잘라 쓸 영역 정하기 2026.07.19
428 dst_rect :: 목적지의 일부 위치에 넣기 2026.07.21
427 transform_filter :: 보간 방식과 플래그 함께 지정 2026.07.23
426 transform_flip :: 90도 회전 요청하기 2026.07.23
425 NvBufSurfTransformAsync() :: 변환 제출과 완료 분리하기 2026.07.23
424 NvBufSurfTransformSyncObjWait() :: 비동기 결과 사용 전에 대기 2026.07.27
423 NvBufSurfTransformSyncObjDestroy() :: 완료된 작업 핸들 정리 2026.07.27
422 NvJPEGEncoder::createJPEGEncoder() :: JPEG 인코더 객체 준비 2026.07.28
421 NvJPEGEncoder::encodeFromFd() :: DMABUF 프레임을 JPEG로 압축 2026.07.28
420 NvJPEGEncoder::setCropRect() :: 매 프레임 JPEG crop 설정하기 2026.07.28
419 NvJPEGEncoder::setScaledEncodeParams() :: JPEG 출력 크기 지정하기 2026.07.28
418 NvJPEGDecoder::createJPEGDecoder() :: JPEG 디코더 생성 검사 2026.07.28
417 NvJPEGDecoder::decodeToFd() :: JPEG 결과를 하드웨어 버퍼로 받기 2026.07.29
416 NvJPEGDecoder::decodeToBuffer() :: JPEG 결과를 CPU용 NvBuffer로 받기 2026.07.29
415 NvBuffer::allocateMemory() :: USERPTR 소프트웨어 버퍼 할당 2026.07.29
414 NvBuffer::map() :: MMAP NvBuffer 주소 매핑 2026.07.31
413 NvBuffer::fill_buffer_plane_format() :: 원본 형식에서 plane 정보 만들기 2026.07.31
412 trunc() :: 0 방향 정수 절삭 계산하기 (double) 2026.08.02
411 ceilf() :: 양의 무한대 방향 정수 올림 계산하기 (float) 2026.08.02
410 cosf() :: 코사인 계산하기 (float) 2026.08.02
409 expf() :: 자연 지수 계산하기 (float) 2026.08.02
408 fabsf() :: 부동소수점 절댓값 계산하기 (float) 2026.08.02
407 floorf() :: 음의 무한대 방향 정수 내림 계산하기 (float) 2026.08.03
406 fmaxf() :: NaN 규칙을 적용한 실수 최댓값 계산하기 (float) 2026.08.03
405 fminf() :: NaN 규칙을 적용한 실수 최솟값 계산하기 (float) 2026.08.03
404 hypotf() :: 오버플로를 줄인 직각삼각형 빗변 계산하기 (float) 2026.08.03
403 logf() :: 자연로그 계산하기 (float) 2026.08.03
402 powf() :: 실수 거듭제곱 계산하기 (float) 2026.08.04
401 roundf() :: 중간값을 0에서 멀어지게 반올림 계산하기 (float) 2026.08.04
400 sinf() :: 사인 계산하기 (float) 2026.08.04
399 sqrtf() :: 제곱근 계산하기 (float) 2026.08.04
398 tanf() :: 탄젠트 계산하기 (float) 2026.08.04
397 truncf() :: 0 방향 정수 절삭 계산하기 (float) 2026.08.05
396 std::vector::size() :: 원소 개수 확인하기 2026.08.05
395 QApplication::exec() :: 첫 창과 이벤트 루프 만들기 2026.08.05
394 std::vector::empty() :: 비어 있는지 확인하기 2026.08.05
393 std::vector::begin() :: 첫 원소의 반복자 얻기 2026.08.05
392 QObject::connect() :: 버튼 신호를 함수에 연결하기 2026.08.06
391 std::vector::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.06
390 std::vector::front() :: 첫 번째 원소 읽기 2026.08.06
389 std::vector::back() :: 마지막 원소 읽기 2026.08.06
388 std::vector::at() :: 범위 검사와 함께 원소 읽기 2026.08.06
387 std::vector::data() :: 연속 버퍼의 시작 주소 얻기 2026.08.07
386 std::vector::capacity() :: 확보한 저장 용량 확인하기 2026.08.07
385 std::vector::reserve() :: 예상 크기만큼 용량 미리 확보하기 2026.08.07
384 std::vector::resize() :: 원소 수 늘리거나 줄이기 2026.08.07
383 std::vector::push_back() :: 맨 뒤에 원소 추가하기 2026.08.07
382 std::vector::pop_back() :: 마지막 원소 제거하기 2026.08.08
381 std::vector::insert() :: 새 원소 삽입하기 2026.08.08
380 std::vector::erase() :: 지정한 원소 제거하기 2026.08.08
379 std::vector::clear() :: 모든 원소 제거하기 2026.08.08
378 std::vector::assign() :: 새 범위로 기존 원소 교체하기 2026.08.08
377 std::vector::shrink_to_fit() :: 남는 저장 용량 축소 요청하기 2026.08.09
376 std::vector::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.09
375 std::deque::size() :: 원소 개수 확인하기 2026.08.09
374 std::deque::empty() :: 비어 있는지 확인하기 2026.08.09
373 std::deque::begin() :: 첫 원소의 반복자 얻기 2026.08.09
372 std::deque::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.10
371 std::deque::front() :: 첫 번째 원소 읽기 2026.08.10
370 std::deque::back() :: 마지막 원소 읽기 2026.08.10
369 std::deque::at() :: 범위 검사와 함께 원소 읽기 2026.08.11
368 std::deque::push_back() :: 맨 뒤에 원소 추가하기 2026.08.11
367 std::deque::pop_back() :: 마지막 원소 제거하기 2026.08.11
366 QObject::setParent() :: 부모가 자식 객체를 정리하는 구조 2026.08.11
365 std::deque::push_front() :: 맨 앞에 원소 추가하기 2026.08.11
364 QObject::deleteLater() :: 이벤트 처리 뒤에 객체 정리하기 2026.08.12
363 std::deque::pop_front() :: 첫 원소 제거하기 2026.08.12
362 std::deque::insert() :: 새 원소 삽입하기 2026.08.12
361 std::deque::erase() :: 지정한 원소 제거하기 2026.08.12
360 std::deque::clear() :: 모든 원소 제거하기 2026.08.13
359 std::deque::assign() :: 새 범위로 기존 원소 교체하기 2026.08.13
358 std::deque::resize() :: 원소 수 늘리거나 줄이기 2026.08.13
357 std::deque::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.13
356 std::list::size() :: 원소 개수 확인하기 2026.08.13
355 std::list::empty() :: 비어 있는지 확인하기 2026.08.14
354 std::list::begin() :: 첫 원소의 반복자 얻기 2026.08.14
353 std::list::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.14
352 std::list::front() :: 첫 번째 원소 읽기 2026.08.14
351 std::list::back() :: 마지막 원소 읽기 2026.08.14
350 std::list::push_back() :: 맨 뒤에 원소 추가하기 2026.08.15
349 std::list::pop_back() :: 마지막 원소 제거하기 2026.08.15
348 std::list::push_front() :: 맨 앞에 원소 추가하기 2026.08.15
347 std::list::pop_front() :: 첫 원소 제거하기 2026.08.15
346 std::list::insert() :: 새 원소 삽입하기 2026.08.15
345 std::list::erase() :: 지정한 원소 제거하기 2026.08.16
344 std::list::clear() :: 모든 원소 제거하기 2026.08.16
343 std::list::assign() :: 새 범위로 기존 원소 교체하기 2026.08.16
342 std::list::resize() :: 원소 수 늘리거나 줄이기 2026.08.16
341 std::list::reverse() :: 연결 리스트 원소 순서 뒤집기 2026.08.16
340 std::list::sort() :: 연결 리스트 정렬하기 2026.08.17
339 std::list::unique() :: 연속으로 같은 원소 제거하기 2026.08.17
338 std::list::remove() :: 같은 값을 가진 모든 노드 제거하기 2026.08.17
337 std::list::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.17
336 std::forward_list::empty() :: 비어 있는지 확인하기 2026.08.20
335 std::forward_list::begin() :: 첫 원소의 반복자 얻기 2026.08.20
334 std::forward_list::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.20
333 std::forward_list::front() :: 첫 번째 원소 읽기 2026.08.20
332 std::forward_list::push_front() :: 맨 앞에 원소 추가하기 2026.08.20
331 std::forward_list::pop_front() :: 첫 원소 제거하기 2026.08.21
330 std::forward_list::clear() :: 모든 원소 제거하기 2026.08.21
329 std::forward_list::assign() :: 새 범위로 기존 원소 교체하기 2026.08.21
328 std::forward_list::reverse() :: 연결 리스트 원소 순서 뒤집기 2026.08.21
327 std::forward_list::sort() :: 연결 리스트 정렬하기 2026.08.21
326 std::forward_list::unique() :: 연속으로 같은 원소 제거하기 2026.08.22
325 std::forward_list::remove() :: 같은 값을 가진 모든 노드 제거하기 2026.08.22
324 std::forward_list::insert_after() :: 이전 반복자 다음에 원소 삽입하기 2026.08.22
323 std::forward_list::erase_after() :: 이전 반복자 다음 원소 삭제하기 2026.08.22
322 std::forward_list::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.22
321 std::set::size() :: 원소 개수 확인하기 2026.08.23
320 std::set::empty() :: 비어 있는지 확인하기 2026.08.23
319 std::set::begin() :: 첫 원소의 반복자 얻기 2026.08.23
318 std::set::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.23
317 std::set::insert() :: 새 원소 삽입하기 2026.08.23
316 std::set::erase() :: 지정한 원소 제거하기 2026.08.24
315 std::set::clear() :: 모든 원소 제거하기 2026.08.25
314 std::set::find() :: 키에 해당하는 반복자 찾기 2026.08.25
313 std::set::count() :: 같은 키를 가진 원소 수 세기 2026.08.25
312 std::set::lower_bound() :: 키 이상인 첫 위치 찾기 2026.08.25
311 std::set::upper_bound() :: 키보다 큰 첫 위치 찾기 2026.08.25
310 std::set::equal_range() :: 키와 동등한 범위 얻기 2026.08.26
309 std::set::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.26
308 std::multiset::size() :: 원소 개수 확인하기 2026.08.26
307 std::multiset::empty() :: 비어 있는지 확인하기 2026.08.26
306 std::multiset::begin() :: 첫 원소의 반복자 얻기 2026.08.26
305 std::multiset::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.27
304 std::multiset::insert() :: 새 원소 삽입하기 2026.08.27
303 std::multiset::erase() :: 지정한 원소 제거하기 2026.08.27
302 std::multiset::clear() :: 모든 원소 제거하기 2026.08.27
301 std::multiset::find() :: 키에 해당하는 반복자 찾기 2026.08.27
300 std::multiset::count() :: 같은 키를 가진 원소 수 세기 2026.08.28
299 std::multiset::lower_bound() :: 키 이상인 첫 위치 찾기 2026.08.28
298 std::multiset::upper_bound() :: 키보다 큰 첫 위치 찾기 2026.08.28
297 std::multiset::equal_range() :: 키와 동등한 범위 얻기 2026.08.28
296 std::multiset::swap() :: 두 컨테이너 내용 맞바꾸기 2026.08.28
295 std::unordered_set::size() :: 원소 개수 확인하기 2026.08.29
294 std::unordered_set::empty() :: 비어 있는지 확인하기 2026.08.29
293 std::unordered_set::begin() :: 첫 원소의 반복자 얻기 2026.08.29
292 std::unordered_set::end() :: 마지막 다음 위치의 반복자 얻기 2026.08.29
291 std::unordered_set::insert() :: 새 원소 삽입하기 2026.08.29
290 std::unordered_set::erase() :: 지정한 원소 제거하기 2026.08.30
289 std::unordered_set::clear() :: 모든 원소 제거하기 2026.08.30
288 std::unordered_set::find() :: 키에 해당하는 반복자 찾기 2026.08.30
287 std::unordered_set::count() :: 같은 키를 가진 원소 수 세기 2026.08.30
286 std::unordered_set::bucket_count() :: 해시 버킷 개수 조회하기 2026.08.31
285 std::unordered_set::load_factor() :: 버킷당 평균 원소 수 조회하기 2026.08.31
284 std::unordered_set::max_load_factor() :: 재해시 기준 부하율 지정하기 2026.08.31
283 std::unordered_set::reserve() :: 예상 크기만큼 용량 미리 확보하기 2026.08.31
282 std::unordered_set::rehash() :: 해시 버킷 수 재조정하기 2026.08.31
281 std::unordered_set::swap() :: 두 컨테이너 내용 맞바꾸기 2026.09.01
280 std::unordered_multiset::size() :: 원소 개수 확인하기 2026.09.01
279 std::unordered_multiset::empty() :: 비어 있는지 확인하기 2026.09.01
278 std::unordered_multiset::begin() :: 첫 원소의 반복자 얻기 2026.09.01
277 std::unordered_multiset::end() :: 마지막 다음 위치의 반복자 얻기 2026.09.01
276 std::unordered_multiset::insert() :: 새 원소 삽입하기 2026.09.02
275 QPointer :: 삭제된 QObject를 감지하는 포인터 2026.09.02
274 QSignalBlocker :: 값을 바꾸면서 시그널 잠시 막기 2026.09.02
273 std::unordered_multiset::erase() :: 지정한 원소 제거하기 2026.09.02
272 std::unordered_multiset::clear() :: 모든 원소 제거하기 2026.09.02
271 std::unordered_multiset::find() :: 키에 해당하는 반복자 찾기 2026.09.03
270 std::unordered_multiset::count() :: 같은 키를 가진 원소 수 세기 2026.09.03
269 std::unordered_multiset::bucket_count() :: 해시 버킷 개수 조회하기 2026.09.03
268 std::unordered_multiset::load_factor() :: 버킷당 평균 원소 수 조회하기 2026.09.03
267 std::unordered_multiset::max_load_factor() :: 재해시 기준 부하율 지정하기 2026.09.03
266 std::unordered_multiset::reserve() :: 예상 크기만큼 용량 미리 확보하기 2026.09.04
265 std::unordered_multiset::rehash() :: 해시 버킷 수 재조정하기 2026.09.04
264 std::unordered_multiset::swap() :: 두 컨테이너 내용 맞바꾸기 2026.09.04
263 std::map::size() :: 원소 개수 확인하기 2026.09.04
262 std::map::empty() :: 비어 있는지 확인하기 2026.09.05
261 std::map::begin() :: 첫 원소의 반복자 얻기 2026.09.05
260 std::map::end() :: 마지막 다음 위치의 반복자 얻기 2026.09.05
259 std::map::insert() :: 새 원소 삽입하기 2026.09.05
258 std::map::erase() :: 지정한 원소 제거하기 2026.09.05
257 std::map::clear() :: 모든 원소 제거하기 2026.09.06
256 std::map::find() :: 키에 해당하는 반복자 찾기 2026.09.06
255 std::map::count() :: 같은 키를 가진 원소 수 세기 2026.09.06
254 std::map::lower_bound() :: 키 이상인 첫 위치 찾기 2026.09.06
253 std::map::upper_bound() :: 키보다 큰 첫 위치 찾기 2026.09.06
252 std::map::equal_range() :: 키와 동등한 범위 얻기 2026.09.07
251 std::map::at() :: 범위 검사와 함께 원소 읽기 2026.09.07
250 std::map::swap() :: 두 컨테이너 내용 맞바꾸기 2026.09.07
249 std::unordered_map::size() :: 원소 개수 확인하기 2026.09.07
248 std::unordered_map::empty() :: 비어 있는지 확인하기 2026.09.07
247 std::unordered_map::begin() :: 첫 원소의 반복자 얻기 2026.09.08
246 std::unordered_map::end() :: 마지막 다음 위치의 반복자 얻기 2026.09.08
245 std::unordered_map::insert() :: 새 원소 삽입하기 2026.09.08
244 std::unordered_map::erase() :: 지정한 원소 제거하기 2026.09.08
243 std::unordered_map::clear() :: 모든 원소 제거하기 2026.09.08
242 std::unordered_map::find() :: 키에 해당하는 반복자 찾기 2026.09.11

게시글 URL이 복사되었습니다.

비회원이 작성한 게시글은 댓글 작성마다 닉네임이 변경되므로 동일인임을 알 수 있도록 IP 주소 배열 2번째까지 공개합니다.

SKT, KT, LG U+ : 각 통신사 사용자가 남긴 댓글입니다.

Personal : 와이파이나 랜선에 직접 연결된 사용자가 남긴 댓글입니다.

회원만 다운로드가 가능합니다.
확인을 누르면 회원가입 페이지로 이동합니다.

회원이라면 로그인 후 다시 시도해 보세요.
확인을 누르면 회원가입 페이지로 이동합니다.

글을 모두 읽을때까지 소요되는 추정 시간 입니다.

업로드/다운로드 속도는 서버의 네트워크 트래픽 정보 입니다.
개별 사용자의 속도와는 관련이 없습니다.

콕 찔렀습니다!

PC가 이미 켜져 있습니다.

알 수 없는 오류가 발생했습니다.

PC에 전원 ON 명령을 요청했습니다.

PC 전원이 켜졌습니다.