본문 바로가기

RAII :: 자원 수명을 객체 수명에 묶기

2026.05.02 10:01:16 274

    • 글자 크기

C++에서 RAII는 C++을 C++답게 만드는 핵심 방식이다.

메모리, 파일, 락, 소켓 같은 자원의 획득과 해제를 객체 생성과 소멸에 묶는다.

생성자가 자원을 확보하고 소멸자가 해제하도록 만들면 함수가 어디서 return하든 예외가 발생하든 스코프를 벗어나는 순간 정리가 실행된다.

unique_ptr, vector, lock_guard, fstream이 모두 이 방식을 사용한다.

RAII 객체를 직접 만들 때 소멸자에서는 예외를 밖으로 던지지 않는 것이 원칙이다.

복사를 허용하면 자원이 이중 해제될 수 있으므로 단독 소유 자원은 복사를 막고 이동만 허용해야 한다.

획득과 해제가 눈에 흩어지지 않는 것이 가장 큰 장점이다.

완성 예제는 읽기 전용 /dev/null을 열어 자원 수명을 보여 준다. 함수가 중간에 반환해도 File 객체가 파괴될 때 fclose()가 호출된다.

완성 예제

#include <cstdio>
#include <memory>
#include <iostream>
using File = std::unique_ptr<FILE, decltype(&std::fclose)>;
File open_file(const char *path) {
    return File(std::fopen(path, "r"), &std::fclose);
}
int main() {
    auto file = open_file("/dev/null");
    if (!file) {
        std::perror("fopen");
        return 1;
    }
    std::cout << "opened\n";
}

이 예제를 실행한 출력은 다음과 같다.

opened

빌드하기

g++ -std=c++17 -Wall -Wextra -pedantic main.cpp -o main
./main
전자기기 쪽으로 문외한 저희 부모님과 지인을 보고 컴퓨터 쪽에 지식이 없는 분들도 쉽게 프로그램을 이용할 수 있도록 하자는 생각으로 포스팅을 하고 있으며 유익한 정보를 최대한 많이 담아두는 것이 저의 궁극적인 목표입니다.
iscntrl() :: 제어 문자인지 판별하기 isdigit() :: 십진수 숫자 문자인지 판별하기

답글 달기

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

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

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

0개 첨부 됨 ( / )

번호 제목 날짜
1040 open() :: 경로를 열어 파일 디스크립터 얻기 2026.03.01
1039 openat() :: 디렉터리 디스크립터를 기준으로 파일 열기 2026.03.01
1038 openat2() :: 경로 해석 조건을 제한하면서 파일 열기 2026.03.01
1037 creat() :: 파일을 새로 만들거나 내용을 비우고 열기 2026.03.01
1036 close() :: 열린 파일 디스크립터 닫기 2026.03.01
1035 close_range() :: 디스크립터 범위를 한 번에 닫기 2026.03.02
1034 dup() :: 기존 파일 디스크립터 복제하기 2026.03.02
1033 dup2() :: 지정한 번호로 파일 디스크립터 복제하기 2026.03.02
1032 recvfrom() :: UDP 데이터와 보낸 주소 함께 받기 2026.03.02
1031 send() :: 연결된 소켓으로 데이터 보내기 2026.03.02
1030 dup3() :: close-on-exec 플래그와 함께 디스크립터 복제하기 2026.03.03
1029 recv() :: 연결된 소켓에서 데이터 받기 2026.03.03
1028 sendto() :: UDP 목적지를 지정해서 보내기 2026.03.03
1027 fcntl() :: 파일 디스크립터 플래그와 잠금 제어하기 2026.03.03
1026 flock() :: 열린 파일에 공유 또는 배타 잠금 설정하기 2026.03.04
1025 lockf() :: 파일의 바이트 범위에 잠금 걸기 2026.03.04
1024 fileno() :: FILE 스트림에서 파일 디스크립터 얻기 2026.03.04
1023 fdopen() :: 기존 디스크립터를 FILE 스트림으로 감싸기 2026.03.04
1022 fclose() :: FILE 스트림을 닫고 버퍼 기록하기 2026.03.04
1021 freopen() :: FILE 스트림을 다른 파일에 다시 연결하기 2026.03.05
1020 read() :: 파일 디스크립터에서 바이트 읽기 2026.03.05
1019 write() :: 파일 디스크립터에 바이트 쓰기 2026.03.05
1018 pread() :: 파일 오프셋을 바꾸지 않고 지정 위치 읽기 2026.03.05
1017 pwrite() :: 파일 오프셋을 바꾸지 않고 지정 위치 쓰기 2026.03.05
1016 readv() :: 여러 버퍼로 한 번에 분산해서 읽기 2026.03.06
1015 writev() :: 여러 버퍼를 한 번에 모아서 쓰기 2026.03.06
1014 preadv() :: 지정 위치의 데이터를 여러 버퍼로 읽기 2026.03.06
1013 pwritev() :: 여러 버퍼를 지정 위치에 기록하기 2026.03.06
1012 preadv2() :: 플래그를 지정한 위치 기반 벡터 읽기 2026.03.07
1011 pwritev2() :: 플래그를 지정한 위치 기반 벡터 쓰기 2026.03.07
1010 lseek() :: 열린 파일의 현재 오프셋 이동하기 2026.03.07
1009 sendfile() :: 파일 데이터를 커널 안에서 다른 디스크립터로 보내기 2026.03.07
1008 copy_file_range() :: 커널 안에서 파일 구간 복사하기 2026.03.07
1007 free() :: 할당한 메모리 반환하기 2026.03.08
1006 splice() :: 파이프와 파일 사이 데이터를 커널에서 이동하기 2026.03.08
1005 malloc() :: 동적 메모리 할당하기 2026.03.08
1004 tee() :: 파이프 데이터를 소비하지 않고 다른 파이프로 복제하기 2026.03.08
1003 vmsplice() :: 사용자 버퍼를 파이프에 연결하기 2026.03.08
1002 readahead() :: 필요해질 파일 데이터를 미리 읽도록 요청하기 2026.03.09
1001 fsync() :: 파일 데이터와 메타데이터를 저장 장치에 반영하기 2026.03.09
1000 fdatasync() :: 파일 데이터를 중심으로 저장 장치에 동기화하기 2026.03.09
999 sync() :: 파일 시스템의 변경 내용을 동기화하기 2026.03.09
998 syncfs() :: 특정 파일 시스템의 변경 내용을 동기화하기 2026.03.09
997 sync_file_range() :: 파일의 특정 구간 기록을 제어하기 2026.03.10
996 truncate() :: 경로가 가리키는 파일 길이 바꾸기 2026.03.10
995 ftruncate() :: 열린 파일의 길이 바꾸기 2026.03.10
994 fallocate() :: 파일 저장 공간을 미리 확보하거나 해제하기 2026.03.10
993 posix_fallocate() :: POSIX 방식으로 파일 공간 확보하기 2026.03.11
992 posix_fadvise() :: 파일 접근 패턴을 커널에 알려주기 2026.03.11
991 stat() :: 경로가 가리키는 파일 정보 읽기 2026.03.11
990 lstat() :: 심볼릭 링크 자체의 파일 정보 읽기 2026.03.11
989 fstat() :: 열린 파일 디스크립터의 메타데이터 읽기 2026.03.11
988 fstatat() :: 기준 디렉터리와 플래그를 지정해 파일 정보 읽기 2026.03.12
987 statx() :: 확장된 파일 메타데이터 조회하기 2026.03.12
986 statfs() :: 경로가 속한 파일 시스템의 상태 읽기 2026.03.12
985 fopen() :: 표준 입출력으로 파일 열기 2026.03.12
984 fstatfs() :: 열린 파일이 속한 파일 시스템 상태 읽기 2026.03.12
983 statvfs() :: 이식 가능한 파일 시스템 용량 정보 읽기 2026.03.13
982 fstatvfs() :: 디스크립터로 파일 시스템 용량 조회하기 2026.03.13
981 mkdir() :: 새 디렉터리 만들기 2026.03.13
980 mkdirat() :: 기준 디렉터리 아래에 새 디렉터리 만들기 2026.03.13
979 rmdir() :: 비어 있는 디렉터리 제거하기 2026.03.13
978 rename() :: 파일 이름이나 경로 바꾸기 2026.03.14
977 renameat() :: 기준 디렉터리들을 지정해 경로 이름 바꾸기 2026.03.14
976 renameat2() :: 교환과 덮어쓰기 제한을 지정해 이름 바꾸기 2026.03.14
975 unlink() :: 파일 이름 하나 제거하기 2026.03.14
974 unlinkat() :: 디렉터리 기준으로 파일 또는 빈 디렉터리 제거하기 2026.03.14
973 remove() :: 파일이나 빈 디렉터리 제거하기 2026.03.15
972 link() :: 같은 inode를 가리키는 하드 링크 만들기 2026.03.15
971 linkat() :: 기준 디렉터리와 플래그를 지정해 하드 링크 만들기 2026.03.15
970 symlink() :: 다른 경로를 가리키는 심볼릭 링크 만들기 2026.03.15
969 symlinkat() :: 기준 디렉터리 아래에 심볼릭 링크 만들기 2026.03.15
968 readlink() :: 심볼릭 링크에 기록된 경로 읽기 2026.03.16
967 readlinkat() :: 디렉터리 기준으로 심볼릭 링크 경로 읽기 2026.03.16
966 realpath() :: 상대 경로와 심볼릭 링크를 정규 경로로 풀기 2026.03.16
965 basename() :: 경로에서 마지막 파일 이름 부분 얻기 2026.03.16
964 dirname() :: 경로에서 디렉터리 부분 얻기 2026.03.16
963 chdir() :: 현재 작업 디렉터리 바꾸기 2026.03.17
962 fchdir() :: 열린 디렉터리 디스크립터로 작업 위치 바꾸기 2026.03.17
961 getcwd() :: 현재 작업 디렉터리의 절대 경로 얻기 2026.03.17
960 opendir() :: 디렉터리 스트림 열기 2026.03.17
959 fdopendir() :: 열린 디렉터리 디스크립터를 스트림으로 감싸기 2026.03.18
958 readdir() :: 디렉터리 항목 하나씩 읽기 2026.03.18
957 closedir() :: 디렉터리 스트림 닫기 2026.03.18
956 rewinddir() :: 디렉터리 스트림을 처음으로 되돌리기 2026.03.18
955 seekdir() :: 디렉터리 스트림의 저장된 위치로 이동하기 2026.03.18
954 strtok_r() :: 문자열을 안전하게 토큰으로 나누기 2026.03.19
953 telldir() :: 디렉터리 스트림의 현재 위치 얻기 2026.03.19
952 dirfd() :: 디렉터리 스트림의 디스크립터 얻기 2026.03.19
951 scandir() :: 조건에 맞는 디렉터리 항목을 배열로 수집하기 2026.03.19
950 scandirat() :: 기준 디렉터리에서 항목을 수집하고 정렬하기 2026.03.19
949 alphasort() :: 디렉터리 항목을 이름 순으로 비교하기 2026.03.20
948 versionsort() :: 디렉터리 이름의 숫자를 버전처럼 비교하기 2026.03.20
947 nftw() :: 디렉터리 트리를 순회하며 콜백 실행하기 2026.03.20
946 access() :: 실제 사용자 기준으로 파일 접근 가능성 확인하기 2026.03.20
945 faccessat() :: 디렉터리 기준으로 접근 권한 확인하기 2026.03.20
944 faccessat2() :: 플래그를 지원하는 접근 권한 확인하기 2026.03.21
943 fchmod() :: 열린 파일의 권한 비트 변경하기 2026.03.22
942 fchmodat() :: 디렉터리 기준으로 파일 권한 바꾸기 2026.03.22
941 chown() :: 파일 소유자와 그룹 바꾸기 2026.03.22
940 fchown() :: 열린 파일의 소유자와 그룹 바꾸기 2026.03.22
939 lchown() :: 심볼릭 링크 자체의 소유자 바꾸기 2026.03.23
938 fchownat() :: 기준 디렉터리와 플래그로 소유자 바꾸기 2026.03.23
937 umask() :: 새 파일의 기본 권한 마스크 설정하기 2026.03.23
936 utimensat() :: 경로의 접근 시간과 수정 시간 정밀하게 바꾸기 2026.03.23
935 futimens() :: 열린 파일의 접근 시간과 수정 시간 바꾸기 2026.03.23
934 utimes() :: 마이크로초 단위로 파일 시간 변경하기 2026.03.24
933 getxattr() :: 파일의 확장 속성 값 읽기 2026.03.24
932 fgetxattr() :: 열린 파일의 확장 속성 읽기 2026.03.24
931 lgetxattr() :: 심볼릭 링크 자체의 확장 속성 읽기 2026.03.24
930 setxattr() :: 파일에 확장 속성 기록하기 2026.03.25
929 fsetxattr() :: 열린 파일에 확장 속성 기록하기 2026.03.25
928 lsetxattr() :: 심볼릭 링크 자체에 확장 속성 기록하기 2026.03.25
927 listxattr() :: 파일의 확장 속성 이름 목록 얻기 2026.03.25
926 flistxattr() :: 열린 파일의 확장 속성 이름 목록 얻기 2026.03.25
925 llistxattr() :: 심볼릭 링크 자체의 확장 속성 목록 얻기 2026.03.26
924 removexattr() :: 파일의 확장 속성 제거하기 2026.03.26
923 fremovexattr() :: 열린 파일의 확장 속성 제거하기 2026.03.26
922 lremovexattr() :: 심볼릭 링크 자체의 확장 속성 제거하기 2026.03.26
921 socket() :: 통신용 소켓 만들기 2026.03.28
920 socketpair() :: 서로 연결된 소켓 두 개 만들기 2026.03.28
919 bind() :: 소켓에 로컬 주소와 포트 연결하기 2026.03.28
918 listen() :: 연결 요청을 받을 수동 소켓으로 전환하기 2026.03.28
917 accept() :: 대기 중인 연결을 받아 새 소켓 얻기 2026.03.28
916 accept4() :: 논블로킹 플래그와 함께 연결 받기 2026.03.29
915 connect() :: 소켓을 상대 주소에 연결하기 2026.03.29
914 shutdown() :: 소켓의 읽기 또는 쓰기 방향 종료하기 2026.03.29
913 getsockname() :: 소켓에 연결된 로컬 주소 얻기 2026.03.29
912 getpeername() :: 연결된 상대방 주소 얻기 2026.04.02
911 getsockopt() :: 소켓 옵션 값 조회하기 2026.04.02
910 setsockopt() :: 소켓 옵션 설정하기 2026.04.02
909 sendmsg() :: 메시지 구조체와 부가 정보를 함께 보내기 2026.04.02
908 recvmsg() :: 분산 버퍼와 제어 메시지로 데이터 받기 2026.04.02
907 std::vector :: 크기가 변하는 연속 배열 2026.04.03
906 emplace_back() :: vector 안에서 원소 바로 만들기 2026.04.03
905 sendmmsg() :: 여러 메시지를 한 시스템 호출로 보내기 2026.04.03
904 recvmmsg() :: 여러 메시지를 한 시스템 호출로 받기 2026.04.03
903 inet_pton() :: 문자열 IP 주소를 바이너리 주소로 변환하기 2026.04.03
902 inet_ntop() :: 바이너리 IP 주소를 문자열로 변환하기 2026.04.04
901 htons() :: 16비트 정수를 네트워크 바이트 순서로 변환하기 2026.04.04
900 htonl() :: 32비트 정수를 네트워크 바이트 순서로 변환하기 2026.04.04
899 ntohs() :: 16비트 네트워크 정수를 호스트 순서로 변환하기 2026.04.04
898 ntohl() :: 32비트 네트워크 정수를 호스트 순서로 변환하기 2026.04.04
897 getaddrinfo() :: 호스트 이름과 서비스에서 주소 목록 얻기 2026.04.05
896 freeaddrinfo() :: 주소 조회 결과 목록 해제하기 2026.04.05
895 gai_strerror() :: 주소 조회 오류 코드를 문자열로 바꾸기 2026.04.05
894 getnameinfo() :: 소켓 주소를 호스트와 서비스 이름으로 바꾸기 2026.04.05
893 getifaddrs() :: 네트워크 인터페이스 주소 목록 읽기 2026.04.05
892 freeifaddrs() :: 인터페이스 주소 목록 해제하기 2026.04.07
891 if_nametoindex() :: 인터페이스 이름을 인덱스로 변환하기 2026.04.07
890 if_indextoname() :: 인터페이스 인덱스를 이름으로 변환하기 2026.04.07
889 if_nameindex() :: 인터페이스 이름과 인덱스 목록 얻기 2026.04.07
888 if_freenameindex() :: 인터페이스 이름 목록 해제하기 2026.04.07
887 gethostname() :: 현재 시스템의 호스트 이름 얻기 2026.04.08
886 sethostname() :: 시스템 호스트 이름 바꾸기 2026.04.08
885 poll() :: 파일 디스크립터 배열의 준비 상태 기다리기 2026.04.08
884 ppoll() :: 시그널 마스크와 정밀한 제한 시간으로 이벤트 기다리기 2026.04.08
883 pselect() :: 시그널 마스크를 원자적으로 바꾸고 디스크립터 기다리기 2026.04.09
882 std::unique_ptr :: 소유자가 하나인 스마트 포인터 2026.04.09
881 epoll_create1() :: 플래그를 지정해 epoll 인스턴스 만들기 2026.04.09
880 std::move() :: 이동을 허용하는 캐스팅 2026.04.09
879 epoll_ctl() :: epoll 감시 대상 추가와 변경 및 제거하기 2026.04.09
878 epoll_wait() :: 준비된 epoll 이벤트 기다리기 2026.04.10
877 epoll_pwait() :: 시그널 마스크를 지정해 epoll 이벤트 기다리기 2026.04.10
876 epoll_pwait2() :: 나노초 제한 시간으로 epoll 이벤트 기다리기 2026.04.10
875 eventfd() :: 정수 카운터 기반 이벤트 디스크립터 만들기 2026.04.10
874 eventfd_read() :: eventfd 카운터 값 읽기 2026.04.11
873 eventfd_write() :: eventfd 카운터에 값 더하기 2026.04.11
872 timerfd_create() :: 타이머 만료를 읽을 수 있는 디스크립터 만들기 2026.04.11
871 timerfd_settime() :: timerfd의 시작 시간과 반복 주기 지정하기 2026.04.11
870 timerfd_gettime() :: timerfd의 남은 시간과 반복 주기 조회하기 2026.04.11
869 inotify_init1() :: 파일 변경 감시 인스턴스 만들기 2026.04.12
868 inotify_add_watch() :: 파일이나 디렉터리에 감시 항목 추가하기 2026.04.12
867 inotify_rm_watch() :: 파일 변경 감시 항목 제거하기 2026.04.12
866 fanotify_init() :: 파일 시스템 이벤트 통지 그룹 만들기 2026.04.12
865 fanotify_mark() :: 파일 시스템 이벤트 감시 범위 지정하기 2026.04.12
864 signalfd() :: 시그널을 파일 디스크립터로 받기 2026.04.13
863 calloc() :: 0으로 초기화된 원소 배열 할당하기 2026.04.13
862 realloc() :: 기존 동적 메모리 블록 크기 바꾸기 2026.04.13
861 reallocarray() :: 원소 수와 크기를 분리해 배열 메모리 재할당하기 2026.04.14
860 aligned_alloc() :: 지정한 정렬 경계에 맞춰 메모리 할당하기 2026.04.14
859 posix_memalign() :: POSIX 방식으로 정렬된 메모리 할당하기 2026.04.14
858 malloc_usable_size() :: 할당 블록이 실제 사용할 수 있는 크기 조회하기 2026.04.14
857 malloc_trim() :: 힙의 사용하지 않는 페이지를 운영체제에 반환하기 2026.04.14
856 malloc_info() :: 할당기의 상태를 XML로 출력하기 2026.04.15
855 memcpy() :: 겹치지 않는 메모리 영역 복사하기 2026.04.15
854 람다 표현식 :: 이름 없는 함수를 바로 만들기 2026.04.15
853 memmove() :: 겹칠 수 있는 메모리 영역 안전하게 복사하기 2026.04.15
852 memset() :: 메모리 영역을 같은 바이트로 채우기 2026.04.15
851 memcmp() :: 두 메모리 영역을 바이트 단위로 비교하기 2026.04.16
850 memchr() :: 메모리 범위에서 특정 바이트 찾기 2026.04.16
849 memrchr() :: 메모리 범위의 뒤에서 특정 바이트 찾기 2026.04.16
848 memmem() :: 메모리 범위 안에서 다른 바이트열 찾기 2026.04.16
847 memccpy() :: 특정 바이트까지 메모리 복사하기 2026.04.17
846 explicit_bzero() :: 최적화로 지워지지 않는 메모리 초기화하기 2026.04.17
845 mmap() :: 파일이나 익명 메모리를 주소 공간에 매핑하기 2026.04.17
844 munmap() :: 메모리 매핑 해제하기 2026.04.17
843 mremap() :: 기존 메모리 매핑 크기와 위치 바꾸기 2026.04.17
842 msync() :: 파일 매핑의 변경을 저장 장치와 동기화하기 2026.04.18
841 mprotect() :: 메모리 페이지의 접근 권한 변경하기 2026.04.18
840 madvise() :: 메모리 접근 패턴을 커널에 알려주기 2026.04.18
839 posix_madvise() :: 이식 가능한 메모리 접근 조언 전달하기 2026.04.22
838 mlock() :: 메모리 페이지가 스왑되지 않도록 잠그기 2026.04.22
837 mlock2() :: 옵션을 지정해 메모리 페이지 잠그기 2026.04.22
836 munlock() :: 메모리 페이지의 스왑 방지 잠금 해제하기 2026.04.22
835 mlockall() :: 프로세스 주소 공간의 페이지 잠그기 2026.04.22
834 munlockall() :: 프로세스의 전체 메모리 잠금 해제하기 2026.04.23
833 mincore() :: 매핑된 페이지의 메모리 상주 여부 확인하기 2026.04.23
832 memfd_create() :: 익명 메모리 파일 디스크립터 만들기 2026.04.23
831 getpagesize() :: 시스템 메모리 페이지 크기 얻기 2026.04.23
830 strlen() :: 널 종료 문자열의 바이트 길이 구하기 2026.04.24
829 strnlen() :: 최대 범위 안에서 문자열 길이 구하기 2026.04.24
828 strcpy() :: 널 종료 문자열 복사하기 2026.04.24
827 strncpy() :: 정해진 길이로 문자열 복사하고 빈 공간 채우기 2026.04.24
826 stpcpy() :: 문자열을 복사하고 끝 주소 돌려받기 2026.04.24
825 std::optional :: 값이 없을 수도 있다는 표현 2026.04.25
824 stpncpy() :: 길이 제한 복사 뒤 끝 위치 얻기 2026.04.25
823 strdup() :: 문자열을 복제해 새 메모리에 저장하기 2026.04.25
822 strndup() :: 최대 길이까지만 문자열 복제하기 2026.04.25
821 strcat() :: 문자열 뒤에 다른 문자열 이어 붙이기 2026.04.26
820 strncat() :: 제한된 바이트 수로 문자열 이어 붙이기 2026.04.26
819 strcmp() :: 두 문자열의 사전식 순서 비교하기 2026.04.26
818 strncmp() :: 지정한 길이 안에서 문자열 비교하기 2026.04.26
817 strcasecmp() :: 대소문자를 무시하고 문자열 비교하기 2026.04.26
816 strncasecmp() :: 길이를 제한해 대소문자 없이 문자열 비교하기 2026.04.27
815 strchr() :: 문자열에서 문자의 첫 위치 찾기 2026.04.27
814 strrchr() :: 문자열에서 문자의 마지막 위치 찾기 2026.04.27
813 strchrnul() :: 문자 또는 문자열 끝 위치 찾기 2026.04.27
812 strstr() :: 문자열 안에서 부분 문자열 찾기 2026.04.28
811 strcasestr() :: 대소문자를 무시하고 부분 문자열 찾기 2026.04.28
810 strpbrk() :: 지정한 문자 집합 중 처음 만나는 문자 찾기 2026.04.28
809 strspn() :: 허용 문자 집합으로 이루어진 접두 길이 구하기 2026.04.28
808 strcspn() :: 금지 문자를 만나기 전까지의 길이 구하기 2026.04.28
807 strtok() :: 구분자로 문자열을 나누고 내부 상태 유지하기 2026.04.29
806 strsep() :: 빈 필드까지 유지하며 문자열 나누기 2026.04.29
805 strcoll() :: 현재 로케일 규칙으로 문자열 비교하기 2026.04.29
804 strxfrm() :: 로케일 비교에 사용할 정렬 키 만들기 2026.04.29
803 strverscmp() :: 문자열 속 숫자를 버전처럼 비교하기 2026.04.30
802 strerror() :: 오류 번호를 설명 문자열로 변환하기 2026.04.30
801 strerror_r() :: 호출자 버퍼로 오류 설명 문자열 받기 2026.04.30
800 strsignal() :: 시그널 번호를 설명 문자열로 변환하기 2026.04.30
799 isalnum() :: 영문자 또는 숫자인지 판별하기 2026.04.30
798 isalpha() :: 알파벳 문자인지 판별하기 2026.05.01
797 isblank() :: 수평 공백 문자인지 판별하기 2026.05.01
796 std::string_view :: 문자열을 복사하지 않고 바라보기 2026.05.01
795 iscntrl() :: 제어 문자인지 판별하기 2026.05.01
RAII :: 자원 수명을 객체 수명에 묶기 2026.05.02
793 isdigit() :: 십진수 숫자 문자인지 판별하기 2026.05.02
792 isgraph() :: 공백을 제외한 출력 가능 문자인지 판별하기 2026.05.02
791 islower() :: 소문자인지 판별하기 2026.05.02
790 isprint() :: 공백을 포함한 출력 가능 문자인지 판별하기 2026.05.02
789 ispunct() :: 구두점 문자인지 판별하기 2026.05.03
788 isspace() :: 공백과 개행 같은 공백 문자인지 판별하기 2026.05.03
787 isupper() :: 대문자인지 판별하기 2026.05.03
786 isxdigit() :: 16진수 숫자 문자인지 판별하기 2026.05.03
785 tolower() :: 문자를 소문자로 바꾸기 2026.05.03
784 toupper() :: 문자를 대문자로 바꾸기 2026.05.04
783 strtol() :: 문자열을 long 정수로 변환하기 2026.05.04
782 strtoll() :: 문자열을 long long 정수로 변환하기 2026.05.04
781 strtoul() :: 문자열을 unsigned long 정수로 변환하기 2026.05.04
780 strtoull() :: 문자열을 unsigned long long 정수로 변환하기 2026.05.04
779 strtoimax() :: 문자열을 최대 폭 부호 정수로 변환하기 2026.05.05
778 strtoumax() :: 문자열을 최대 폭 비부호 정수로 변환하기 2026.05.05
777 strtof() :: 문자열을 float 실수로 변환하기 2026.05.05
776 strtod() :: 문자열을 double 실수로 변환하기 2026.05.05
775 set -euo pipefail :: 셸 스크립트 실패를 빨리 발견하기 2026.05.05
774 strtold() :: 문자열을 long double 실수로 변환하기 2026.05.07
773 $? :: 셸에서 바로 전 명령의 종료 상태 확인하기 2026.05.07
772 abs() :: int 정수의 절댓값 구하기 2026.05.07
771 labs() :: long 정수의 절댓값 구하기 2026.05.07
770 llabs() :: long long 정수의 절댓값 구하기 2026.05.07
769 div() :: int 정수의 몫과 나머지 함께 구하기 2026.05.08
768 ldiv() :: long 정수의 몫과 나머지 함께 구하기 2026.05.08
767 lldiv() :: long long 정수의 몫과 나머지 함께 구하기 2026.05.08
766 printf() :: 형식 문자열을 사용해 표준 출력에 쓰기 2026.05.08
765 fprintf() :: 형식화한 내용을 지정한 FILE 스트림에 쓰기 2026.05.08
764 snprintf() :: 버퍼 크기를 제한해 형식화한 문자열 만들기 2026.05.09
763 dprintf() :: 파일 디스크립터에 형식화해서 출력하기 2026.05.09
762 asprintf() :: 필요한 버퍼를 할당해 형식화한 문자열 만들기 2026.05.09
761 vprintf() :: 가변 인수 목록으로 표준 출력하기 2026.05.09
760 vfprintf() :: 가변 인수 목록으로 스트림에 출력하기 2026.05.10
759 vsnprintf() :: 가변 인수 목록으로 길이 제한 문자열 만들기 2026.05.10
758 vdprintf() :: 가변 인수 목록을 디스크립터로 출력하기 2026.05.10
757 vasprintf() :: 가변 인수 목록으로 새 문자열 할당하기 2026.05.10
756 scanf() :: 표준 입력에서 형식에 맞춰 값 읽기 2026.05.10
755 fscanf() :: FILE 스트림에서 형식에 맞춰 값 읽기 2026.05.11
754 sscanf() :: 문자열에서 형식에 맞춰 값 추출하기 2026.05.11
753 vscanf() :: 가변 인수 목록으로 표준 입력 해석하기 2026.05.11
752 vfscanf() :: 가변 인수 목록으로 FILE 입력 해석하기 2026.05.11
751 vsscanf() :: 가변 인수 목록으로 문자열 해석하기 2026.05.12
750 fgetc() :: FILE 스트림에서 문자 하나 읽기 2026.05.12
749 getc() :: 스트림에서 다음 문자 읽기 2026.05.12
748 getchar() :: 표준 입력에서 문자 하나 읽기 2026.05.12
747 trap :: 셸 스크립트 종료 시 정리 작업하기 2026.05.12
746 fgets() :: 크기를 제한해 한 줄 읽기 2026.05.13
745 exec :: 현재 셸을 다른 프로그램으로 교체하기 2026.05.13
744 getline() :: 필요하면 버퍼를 늘려 한 줄 읽기 2026.05.13
743 getdelim() :: 지정한 구분자까지 버퍼를 늘려 읽기 2026.05.13
742 fread() :: FILE 스트림에서 원소 배열 읽기 2026.05.13
741 fputc() :: FILE 스트림에 문자 하나 쓰기 2026.05.14
740 putc() :: 스트림에 문자 하나 출력하기 2026.05.14
739 putchar() :: 표준 출력에 문자 하나 쓰기 2026.05.14
738 fputs() :: 널 종료 문자열을 스트림에 쓰기 2026.05.14
737 puts() :: 문자열과 개행을 표준 출력에 쓰기 2026.05.14
736 fwrite() :: 원소 배열을 FILE 스트림에 쓰기 2026.05.15
735 ungetc() :: 문자 하나를 스트림 입력으로 되돌리기 2026.05.15
734 fflush() :: 스트림의 출력 버퍼 기록하기 2026.05.15
733 fseek() :: FILE 스트림의 파일 위치 바꾸기 2026.05.15
732 fseeko() :: off_t 기반으로 FILE 위치 이동하기 2026.05.15
731 ftell() :: FILE 스트림의 현재 위치 얻기 2026.05.16
730 ftello() :: off_t 기반으로 FILE 현재 위치 얻기 2026.05.16
729 rewind() :: 스트림 위치를 처음으로 되돌리기 2026.05.16
728 fgetpos() :: 스트림 위치와 상태를 저장하기 2026.05.16
727 fsetpos() :: 저장한 스트림 위치로 복원하기 2026.05.17
726 feof() :: 스트림의 EOF 표시 확인하기 2026.05.17
725 ferror() :: 스트림의 오류 표시 확인하기 2026.05.17
724 clearerr() :: 스트림의 EOF와 오류 표시 지우기 2026.05.17
723 perror() :: 현재 errno 설명을 표준 오류에 출력하기 2026.05.17
722 setvbuf() :: FILE 스트림 버퍼링 방식 설정하기 2026.05.18
721 setbuf() :: FILE 스트림 버퍼 제공하기 2026.05.18
720 flockfile() :: FILE 스트림의 내부 잠금 획득하기 2026.05.18
719 ftrylockfile() :: FILE 스트림 잠금을 기다리지 않고 시도하기 2026.05.18
718 "$@"와 "$*" :: 셸 함수 인수 전달 차이 2026.05.18
717 funlockfile() :: FILE 스트림 내부 잠금 해제하기 2026.05.19
716 read :: 셸에서 한 줄씩 안전하게 읽기 2026.05.19
715 fmemopen() :: 메모리 버퍼를 FILE 스트림으로 열기 2026.05.19
714 open_memstream() :: 동적으로 커지는 메모리 출력 스트림 만들기 2026.05.19
713 tmpfile() :: 자동 정리되는 임시 파일 스트림 만들기 2026.05.19
712 mkstemp() :: 충돌을 피하며 임시 파일 안전하게 만들기 2026.05.21
711 mkdtemp() :: 충돌을 피하며 임시 디렉터리 만들기 2026.05.21
710 time() :: 에포크 이후 현재 초 수 얻기 2026.05.21
709 gettimeofday() :: 현재 시각을 초와 마이크로초로 얻기 2026.05.21
708 clock_gettime() :: 선택한 시계의 현재 시각 얻기 2026.05.22
707 clock_getres() :: 선택한 시계의 시간 해상도 얻기 2026.05.22
706 clock_settime() :: 선택한 시계의 시각 변경하기 2026.05.22
705 nanosleep() :: 초와 나노초 단위로 실행 멈추기 2026.05.22
704 clock_nanosleep() :: 시계를 지정해 절대 또는 상대 시간만큼 기다리기 2026.05.22
703 sleep() :: 초 단위로 실행 멈추기 2026.05.23
702 alarm() :: 일정 시간 뒤 SIGALRM 예약하기 2026.05.23
701 setitimer() :: 프로세스 interval timer 설정하기 2026.05.23
700 getitimer() :: 프로세스 interval timer 상태 조회하기 2026.05.24
699 timer_create() :: POSIX 타이머 만들기 2026.05.24
698 timer_delete() :: POSIX 타이머 삭제하기 2026.05.24
697 timer_settime() :: POSIX 타이머 만료 시각과 반복 주기 설정하기 2026.05.24
696 timer_gettime() :: POSIX 타이머 남은 시간 조회하기 2026.05.24
695 timer_getoverrun() :: POSIX 타이머 통지 누락 횟수 얻기 2026.05.25
694 localtime_r() :: 타임스탬프를 지역 시각 구조체로 변환하기 2026.05.25
693 gmtime_r() :: 타임스탬프를 UTC 시각 구조체로 변환하기 2026.05.25
692 mktime() :: 지역 시각 구조체를 타임스탬프로 변환하기 2026.05.25
691 timegm() :: UTC 시각 구조체를 타임스탬프로 변환하기 2026.05.25
690 xargs :: 표준 입력을 명령 인수로 바꾸기 2026.05.26
689 strftime() :: 시각 구조체를 형식화한 문자열로 만들기 2026.05.26
688 strptime() :: 형식 문자열로 날짜와 시각 해석하기 2026.05.26
687 Here document :: 여러 줄 입력을 명령에 전달하기 2026.05.26
686 difftime() :: 두 타임스탬프 사이의 초 차이 구하기 2026.05.26
685 clock() :: 프로세스가 사용한 CPU 시간 얻기 2026.05.27
684 times() :: 프로세스와 자식의 CPU 사용 시간 조회하기 2026.05.27
683 getrusage() :: 프로세스의 CPU와 메모리 자원 사용량 조회하기 2026.05.27
682 tzset() :: 환경 변수에서 시간대 규칙 다시 읽기 2026.05.27
681 wait() :: 종료한 자식 프로세스 하나 회수하기 2026.05.27
680 waitpid() :: 지정한 자식 프로세스 상태 기다리기 2026.05.28
679 waitid() :: 대상과 상태 종류를 지정해 자식 기다리기 2026.05.28
678 wait3() :: 자식 상태와 자원 사용량 함께 얻기 2026.05.28
677 wait4() :: 지정한 자식의 상태와 자원 사용량 얻기 2026.05.28
676 getpid() :: 현재 프로세스 ID 얻기 2026.05.28
675 getppid() :: 부모 프로세스 ID 얻기 2026.05.29
674 gettid() :: 현재 커널 스레드 ID 얻기 2026.05.29
673 getpgid() :: 프로세스 그룹 ID 얻기 2026.05.29
672 setpgid() :: 프로세스를 지정한 그룹으로 옮기기 2026.05.29
671 getpgrp() :: 현재 프로세스 그룹 ID 얻기 2026.05.29
670 getsid() :: 세션 ID 조회하기 2026.05.30
669 setsid() :: 새 세션과 프로세스 그룹 만들기 2026.05.30
668 execl() :: 인수 목록으로 새 프로그램 실행하기 2026.05.30
667 execv() :: 인수 배열로 새 프로그램 실행하기 2026.05.30
666 execle() :: 인수 목록과 환경 배열로 프로그램 실행하기 2026.05.30
665 execvp() :: PATH에서 실행 파일을 찾아 인수 배열로 실행하기 2026.05.31
664 execlp() :: PATH에서 실행 파일을 찾아 인수 목록으로 실행하기 2026.05.31
663 execvpe() :: PATH와 환경 배열을 사용해 프로그램 실행하기 2026.05.31
662 fexecve() :: 열린 실행 파일 디스크립터로 프로그램 실행하기 2026.05.31
661 execveat() :: 디렉터리 기준 경로로 프로그램 실행하기 2026.06.01
660 posix_spawn() :: 프로세스 생성과 프로그램 실행을 함께 요청하기 2026.06.01
659 posix_spawnp() :: PATH를 검색하는 방식으로 프로그램 생성하기 2026.06.01
658 system() :: 셸을 통해 명령 문자열 실행하기 2026.06.01
657 chmod :: 리눅스 파일 권한 변경하기 2026.06.01
656 inode :: 리눅스 파일의 진짜 식별자 2026.06.02
655 popen() :: 명령의 표준 입출력을 FILE 스트림으로 연결하기 2026.06.02
654 pclose() :: popen 스트림을 닫고 명령 종료 상태 얻기 2026.06.02
653 exit() :: 표준 정리 절차를 거쳐 프로세스 끝내기 2026.06.02
652 atexit() :: 정상 종료 시 호출할 함수 등록하기 2026.06.02
651 abort() :: 비정상 종료를 발생시키기 2026.06.03
650 getenv() :: 환경 변수 문자열 읽기 2026.06.03
649 secure_getenv() :: 보안 실행 환경을 고려해 환경 변수 읽기 2026.06.03
648 setenv() :: 환경 변수 값 설정하기 2026.06.03
647 unsetenv() :: 환경 변수 제거하기 2026.06.03
646 clearenv() :: 환경 변수 목록 비우기 2026.06.04
645 getopt() :: 짧은 명령행 옵션 해석하기 2026.06.04
644 getopt_long() :: 긴 이름을 가진 명령행 옵션 해석하기 2026.06.04
643 getsubopt() :: 쉼표로 구분된 하위 옵션 해석하기 2026.06.04
642 getrlimit() :: 프로세스 자원 한도 조회하기 2026.06.04
641 setrlimit() :: 프로세스 자원 한도 바꾸기 2026.06.07
640 prlimit() :: 다른 프로세스의 자원 한도 조회와 설정하기 2026.06.07
639 nice() :: 프로세스의 스케줄링 우선순위 조정하기 2026.06.07
638 getpriority() :: nice 우선순위 값 조회하기 2026.06.07
637 setpriority() :: 프로세스 집합의 nice 값 바꾸기 2026.06.07
636 sched_getcpu() :: 현재 스레드가 실행 중인 CPU 번호 얻기 2026.06.08
635 sched_getaffinity() :: 실행이 허용된 CPU 집합 조회하기 2026.06.08
634 sched_setaffinity() :: 스레드가 실행할 CPU 집합 제한하기 2026.06.08
633 sched_yield() :: 다른 실행 가능한 스레드에 CPU 양보하기 2026.06.08
632 uname() :: 커널과 시스템 식별 정보 얻기 2026.06.08
631 sysinfo() :: 메모리와 시스템 부하 정보 얻기 2026.06.09
630 sysconf() :: 런타임 시스템 설정값 조회하기 2026.06.09
629 pathconf() :: 특정 경로의 파일 시스템 제한 조회하기 2026.06.09
628 심볼릭 링크 :: 다른 경로를 가리키는 파일 2026.06.09
627 fpathconf() :: 열린 파일의 파일 시스템 제한 조회하기 2026.06.10
626 confstr() :: 런타임 설정 문자열 얻기 2026.06.10
625 fork() :: 현재 프로세스를 복제하기 2026.06.10
624 getrandom() :: 커널에서 안전한 난수 바이트 얻기 2026.06.10
623 getentropy() :: 작은 크기의 보안 난수 버퍼 채우기 2026.06.10
622 kill() :: 프로세스 또는 그룹에 시그널 보내기 2026.06.11
621 killpg() :: 프로세스 그룹에 시그널 보내기 2026.06.11
620 raise() :: 현재 실행 흐름에 시그널 발생시키기 2026.06.12
619 sigaction() :: 시그널 처리 동작을 구조체로 지정하기 2026.06.12
618 sigprocmask() :: 호출 스레드의 시그널 마스크 변경하기 2026.06.12
617 sigpending() :: 처리 대기 중인 시그널 목록 얻기 2026.06.12
616 sigsuspend() :: 일시적인 마스크로 시그널 기다리기 2026.06.12
615 sigwait() :: 시그널 집합 중 하나를 동기적으로 기다리기 2026.06.13
614 sigwaitinfo() :: 시그널과 부가 정보를 함께 기다리기 2026.06.13
613 sigtimedwait() :: 제한 시간 안에서 시그널 기다리기 2026.06.13
612 sigqueue() :: 정수나 포인터 값을 포함한 시그널 보내기 2026.06.13
611 sigaltstack() :: 시그널 핸들러용 대체 스택 지정하기 2026.06.13
610 sigemptyset() :: 비어 있는 시그널 집합 만들기 2026.06.14
609 sigfillset() :: 모든 시그널을 포함하는 집합 만들기 2026.06.14
608 sigaddset() :: 시그널 집합에 항목 추가하기 2026.06.14
607 sigdelset() :: 시그널 집합에서 항목 제거하기 2026.06.14
606 sigismember() :: 집합에 시그널이 포함되어 있는지 확인하기 2026.06.14
605 pause() :: 시그널이 전달될 때까지 기다리기 2026.06.15
604 psignal() :: 시그널 번호 설명을 표준 오류에 출력하기 2026.06.15
603 pthread_create() :: 새 POSIX 스레드 만들기 2026.06.15
602 pthread_join() :: 스레드 종료를 기다리고 반환값 회수하기 2026.06.15
601 pthread_detach() :: 스레드 종료 자원을 자동 회수하도록 설정하기 2026.06.15
600 pthread_self() :: 현재 스레드 식별자 얻기 2026.06.16
599 pthread_equal() :: 두 POSIX 스레드 ID 비교하기 2026.06.16
598 execve() :: 현재 프로세스에서 새 프로그램 실행하기 2026.06.16
597 pipe() :: 프로세스 사이에 단방향 통로 만들기 2026.06.16
596 pthread_exit() :: 현재 스레드만 종료하기 2026.06.16
595 pthread_cancel() :: 스레드에 취소 요청 보내기 2026.06.19
594 pthread_testcancel() :: 스레드 취소 지점 명시하기 2026.06.19
593 pthread_setcancelstate() :: 스레드 취소 허용 상태 설정하기 2026.06.19
592 pthread_setcanceltype() :: 스레드 취소 방식 설정하기 2026.06.19
591 pthread_sigmask() :: 스레드의 시그널 마스크 변경하기 2026.06.19
590 pthread_kill() :: 특정 스레드에 시그널 보내기 2026.06.20
589 pthread_setname_np() :: 리눅스 스레드 이름 설정하기 2026.06.20
588 pthread_getname_np() :: 리눅스 스레드 이름 조회하기 2026.06.20
587 pthread_getaffinity_np() :: 스레드의 CPU affinity 조회하기 2026.06.20
586 pthread_setaffinity_np() :: 스레드의 CPU affinity 설정하기 2026.06.21
585 pthread_attr_init() :: 스레드 속성 객체 초기화하기 2026.06.21
584 pthread_attr_destroy() :: 스레드 속성 객체 정리하기 2026.06.21
583 pthread_attr_setdetachstate() :: 스레드 분리 상태 지정하기 2026.06.21
582 pthread_attr_getdetachstate() :: 스레드 분리 상태 조회하기 2026.06.21
581 pthread_attr_setstacksize() :: 새 스레드의 스택 크기 설정하기 2026.06.22
580 pthread_attr_getstacksize() :: 스레드 스택 크기 속성 조회하기 2026.06.22
579 pthread_attr_setguardsize() :: 스택 경계 보호 영역 크기 설정하기 2026.06.22
578 pthread_attr_getguardsize() :: 스택 경계 보호 영역 크기 조회하기 2026.06.22
577 pthread_getattr_np() :: 실행 중인 스레드의 속성 얻기 2026.06.22
576 pthread_getschedparam() :: 스레드 스케줄링 정책과 우선순위 얻기 2026.06.23
575 pthread_setschedparam() :: 스레드 스케줄링 정책과 우선순위 바꾸기 2026.06.23
574 pthread_spin_init() :: 스핀락 초기화하기 2026.06.23
573 pthread_spin_destroy() :: 스핀락 자원 정리하기 2026.06.23
572 pthread_spin_lock() :: 스핀락을 얻을 때까지 반복 대기하기 2026.06.23
571 pthread_spin_trylock() :: 스핀락 획득을 기다리지 않고 시도하기 2026.06.24
570 pthread_spin_unlock() :: 스핀락 해제하기 2026.06.24
569 pthread_mutex_consistent() :: 강건한 뮤텍스의 공유 상태 복구 완료 알리기 2026.06.24
568 pthread_mutexattr_setrobust() :: 뮤텍스의 소유자 종료 복구 방식 설정하기 2026.06.24
567 pthread_mutexattr_getrobust() :: 뮤텍스의 강건성 속성 조회하기 2026.06.24
566 pthread_mutexattr_setpshared() :: 뮤텍스의 프로세스 공유 속성 설정하기 2026.06.25
565 pthread_mutexattr_getpshared() :: 뮤텍스의 프로세스 공유 속성 조회하기 2026.06.25
564 shm_open() :: POSIX 공유 메모리 객체 열기 2026.06.25
563 shm_unlink() :: POSIX 공유 메모리 이름 제거하기 2026.06.25
562 shmget() :: System V 공유 메모리 세그먼트 얻기 2026.06.26
561 shmat() :: System V 공유 메모리를 주소 공간에 연결하기 2026.06.26
560 shmdt() :: System V 공유 메모리 연결 해제하기 2026.06.26
559 shmctl() :: System V 공유 메모리 상태 조회와 제어하기 2026.06.26
558 sem_init() :: 이름 없는 POSIX 세마포어 초기화하기 2026.06.26
557 sem_destroy() :: 이름 없는 POSIX 세마포어 정리하기 2026.06.27
556 sem_open() :: 이름 있는 POSIX 세마포어 열기 2026.06.27
555 sem_close() :: 이름 있는 POSIX 세마포어 연결 닫기 2026.06.27
554 sem_unlink() :: 이름 있는 세마포어 이름 제거하기 2026.06.27
553 sem_wait() :: 세마포어 값을 기다렸다가 감소시키기 2026.06.27
552 sem_trywait() :: 세마포어 획득을 기다리지 않고 시도하기 2026.06.28
551 sem_timedwait() :: 제한 시간 동안 세마포어 기다리기 2026.06.28
550 sem_post() :: 세마포어 값을 증가시켜 대기자 깨우기 2026.06.28
549 sem_getvalue() :: POSIX 세마포어의 현재 값 조회하기 2026.06.28
548 semget() :: System V 세마포어 집합 얻기 2026.06.29
547 semctl() :: System V 세마포어 집합 제어하기 2026.06.29
546 semop() :: System V 세마포어 연산 묶음 수행하기 2026.06.29
545 semtimedop() :: 제한 시간을 지정한 세마포어 연산 수행하기 2026.06.29
544 mq_open() :: POSIX 메시지 큐 열기 2026.06.29
543 mq_close() :: POSIX 메시지 큐 디스크립터 닫기 2026.06.30
542 mq_unlink() :: POSIX 메시지 큐 이름 제거하기 2026.06.30
541 mq_send() :: POSIX 메시지 큐에 우선순위와 함께 메시지 넣기 2026.06.30
540 mq_receive() :: POSIX 메시지 큐에서 메시지 받기 2026.06.30
539 mq_timedsend() :: 제한 시간을 지정해 메시지 보내기 2026.07.01
538 mq_timedreceive() :: 제한 시간을 지정해 메시지 받기 2026.07.01
537 mq_getattr() :: POSIX 메시지 큐 속성 조회하기 2026.07.01
536 mq_setattr() :: POSIX 메시지 큐 속성 변경하기 2026.07.01
535 mq_notify() :: 메시지 큐 도착 통지 등록하기 2026.07.01
534 msgget() :: System V 메시지 큐 얻기 2026.07.02
533 msgsnd() :: System V 메시지 큐에 메시지 보내기 2026.07.02
532 msgrcv() :: System V 메시지 큐에서 메시지 받기 2026.07.02
531 msgctl() :: System V 메시지 큐 상태와 수명 제어하기 2026.07.03
530 mkfifo() :: 이름 있는 파이프 만들기 2026.07.03
529 mkfifoat() :: 디렉터리 기준으로 FIFO 만들기 2026.07.03
528 dlopen() :: 실행 중 공유 라이브러리 열기 2026.07.03
527 dlclose() :: 공유 라이브러리 참조 해제하기 2026.07.03
526 dlsym() :: 라이브러리에서 심볼 주소 찾기 2026.07.04
525 dlerror() :: 동적 로더의 오류 메시지 읽기 2026.07.04
524 dladdr() :: 주소가 속한 라이브러리와 심볼 정보 얻기 2026.07.04
523 dl_iterate_phdr() :: 로드된 공유 객체의 프로그램 헤더 순회하기 2026.07.05
522 backtrace() :: 현재 호출 스택의 주소 수집하기 2026.07.05
521 backtrace_symbols() :: 호출 스택 주소를 설명 문자열로 변환하기 2026.07.05
520 backtrace_symbols_fd() :: 호출 스택 설명을 디스크립터에 출력하기 2026.07.05
519 openlog() :: 시스템 로그 연결 속성 설정하기 2026.07.05
518 syslog() :: 우선순위와 함께 시스템 로그 기록하기 2026.07.06
517 closelog() :: 시스템 로그 연결 닫기 2026.07.06
516 setlogmask() :: 시스템 로그 우선순위 필터 설정하기 2026.07.06
515 fnmatch() :: 파일 이름을 셸 패턴과 비교하기 2026.07.07
514 glob() :: 파일 경로 패턴을 실제 경로 목록으로 확장하기 2026.07.07
513 epoll :: 리눅스에서 많은 소켓 감시하기 2026.07.07
512 globfree() :: glob 결과의 동적 메모리 해제하기 2026.07.07
511 select() :: 여러 파일 디스크립터 기다리기 2026.07.07
510 regcomp() :: POSIX 정규식 컴파일하기 2026.07.08
509 regexec() :: 컴파일된 정규식으로 문자열 검색하기 2026.07.08
508 regerror() :: POSIX 정규식 오류를 문자열로 변환하기 2026.07.08
507 regfree() :: 컴파일된 정규식 자원 해제하기 2026.07.08
506 bsearch() :: 정렬된 배열에서 이진 검색하기 2026.07.08
505 qsort() :: 비교 함수를 이용해 배열 정렬하기 2026.07.09
504 qsort_r() :: 문맥 인수를 전달하며 배열 정렬하기 2026.07.09
503 tsearch() :: 이진 탐색 트리에 항목 삽입 또는 검색하기 2026.07.09
502 tfind() :: 이진 탐색 트리에서 항목 찾기 2026.07.09
501 tdelete() :: 이진 탐색 트리에서 항목 제거하기 2026.07.09
500 twalk() :: 이진 탐색 트리의 노드 순회하기 2026.07.10
499 tdestroy() :: 이진 탐색 트리와 노드 자원 해제하기 2026.07.10
498 hcreate() :: 표준 해시 테이블 생성하기 2026.07.10
497 hsearch() :: 표준 해시 테이블에서 검색 또는 삽입하기 2026.07.10
496 hdestroy() :: 표준 해시 테이블 자원 정리하기 2026.07.10
495 getuid() :: 실제 사용자 ID 조회하기 2026.07.11
494 geteuid() :: 유효 사용자 ID 조회하기 2026.07.11
493 getgid() :: 실제 그룹 ID 조회하기 2026.07.11
492 getegid() :: 유효 그룹 ID 조회하기 2026.07.11
491 getgroups() :: 보조 그룹 ID 목록 조회하기 2026.07.11
490 getresuid() :: 실제와 유효 및 저장된 사용자 ID 얻기 2026.07.12
489 getresgid() :: 실제와 유효 및 저장된 그룹 ID 얻기 2026.07.12
488 setuid() :: 프로세스 사용자 ID 바꾸기 2026.07.12
487 seteuid() :: 유효 사용자 ID 바꾸기 2026.07.12
486 setgid() :: 프로세스 그룹 ID 바꾸기 2026.07.12
485 setegid() :: 유효 그룹 ID 바꾸기 2026.07.13
484 setgroups() :: 보조 그룹 목록 설정하기 2026.07.13
483 getpwnam_r() :: 사용자 이름으로 계정 정보 안전하게 조회하기 2026.07.13
482 getpwuid_r() :: 사용자 ID로 계정 정보 안전하게 조회하기 2026.07.13
481 getgrnam_r() :: 그룹 이름으로 그룹 정보 안전하게 조회하기 2026.07.15
480 getgrgid_r() :: 그룹 ID로 그룹 정보 안전하게 조회하기 2026.07.15
479 initgroups() :: 사용자의 보조 그룹 목록 초기화하기 2026.07.15
478 getgrouplist() :: 사용자가 속한 그룹 목록 얻기 2026.07.15
477 getlogin_r() :: 로그인 사용자 이름을 버퍼에 얻기 2026.07.15
476 setlocale() :: 프로세스 로케일 선택하기 2026.07.16
475 newlocale() :: 별도 로케일 객체 만들기 2026.07.16
474 duplocale() :: 로케일 객체 복제하기 2026.07.16
473 freelocale() :: 로케일 객체 해제하기 2026.07.16
472 uselocale() :: 현재 스레드의 로케일 객체 선택하기 2026.07.16
471 localeconv() :: 숫자와 통화 표기 규칙 조회하기 2026.07.17
470 nl_langinfo() :: 선택한 로케일 정보 항목 읽기 2026.07.17
469 iconv_open() :: 문자 인코딩 변환 핸들 만들기 2026.07.17
468 iconv() :: 입력 바이트열의 문자 인코딩 변환하기 2026.07.17
467 iconv_close() :: 문자 인코딩 변환 핸들 닫기 2026.07.17
466 mbrtowc() :: 멀티바이트 문자를 와이드 문자로 변환하기 2026.07.18
465 wcrtomb() :: 와이드 문자를 멀티바이트 문자로 변환하기 2026.07.18
464 mbsrtowcs() :: 멀티바이트 문자열을 와이드 문자열로 변환하기 2026.07.18
463 wcsrtombs() :: 와이드 문자열을 멀티바이트 문자열로 변환하기 2026.07.18
462 mbsinit() :: 멀티바이트 변환 상태가 초기 상태인지 확인하기 2026.07.18
461 wcwidth() :: 와이드 문자 하나의 화면 칸 수 구하기 2026.07.19
460 wcswidth() :: 와이드 문자열의 화면 칸 수 구하기 2026.07.19
459 acos() :: 역코사인 계산하기 (double) 2026.07.19
458 acosh() :: 역쌍곡코사인 계산하기 (double) 2026.07.19
457 asin() :: 역사인 계산하기 (double) 2026.07.19
456 asinh() :: 역쌍곡사인 계산하기 (double) 2026.07.23
455 atan() :: 역탄젠트 계산하기 (double) 2026.07.23
454 atan2() :: 두 좌표의 방향각 계산하기 (double) 2026.07.23
453 atanh() :: 역쌍곡탄젠트 계산하기 (double) 2026.07.23
452 cbrt() :: 세제곱근 계산하기 (double) 2026.07.23
451 ceil() :: 양의 무한대 방향 정수 올림 계산하기 (double) 2026.07.24
450 copysign() :: 다른 수의 부호 복사 계산하기 (double) 2026.07.24
449 cos() :: 코사인 계산하기 (double) 2026.07.24
448 cosh() :: 쌍곡코사인 계산하기 (double) 2026.07.24
447 erf() :: 오차 함수 계산하기 (double) 2026.07.24
446 erfc() :: 상보 오차 함수 계산하기 (double) 2026.07.25
445 exp() :: 자연 지수 계산하기 (double) 2026.07.25
444 exp2() :: 밑이 2인 지수 계산하기 (double) 2026.07.25
443 expm1() :: 작은 입력에서도 정밀한 exp(x)-1 계산하기 (double) 2026.07.25
442 fabs() :: 부동소수점 절댓값 계산하기 (double) 2026.07.25
441 fdim() :: 두 실수 차이의 양수 부분 계산하기 (double) 2026.07.26
440 floor() :: 음의 무한대 방향 정수 내림 계산하기 (double) 2026.07.26
439 fma() :: 한 번 반올림하는 곱셈 덧셈 계산하기 (double) 2026.07.26
438 fmax() :: NaN 규칙을 적용한 실수 최댓값 계산하기 (double) 2026.07.26
437 fmin() :: NaN 규칙을 적용한 실수 최솟값 계산하기 (double) 2026.07.26
436 fmod() :: 나눗셈의 부동소수점 나머지 계산하기 (double) 2026.07.27
435 frexp() :: 가수와 2의 지수 분리 계산하기 (double) 2026.07.27
434 hypot() :: 오버플로를 줄인 직각삼각형 빗변 계산하기 (double) 2026.07.27
433 ldexp() :: 2의 거듭제곱 배수 계산하기 (double) 2026.07.27
432 lgamma() :: 감마 함수 절댓값의 로그 계산하기 (double) 2026.07.28
431 log() :: 자연로그 계산하기 (double) 2026.07.28
430 log10() :: 상용로그 계산하기 (double) 2026.07.28
429 log1p() :: 작은 입력에서도 정밀한 log(1+x) 계산하기 (double) 2026.07.28
428 log2() :: 밑이 2인 로그 계산하기 (double) 2026.07.28
427 logb() :: 부동소수점의 지수 계산하기 (double) 2026.07.29
426 modf() :: 정수 부분과 소수 부분 분리 계산하기 (double) 2026.07.29
425 nearbyint() :: 현재 반올림 모드의 정수 반올림 계산하기 (double) 2026.07.29
424 nextafter() :: 지정 방향의 다음 표현 가능 실수 계산하기 (double) 2026.07.29
423 pow() :: 실수 거듭제곱 계산하기 (double) 2026.07.29
422 remainder() :: 가장 가까운 몫을 기준으로 한 나머지 계산하기 (double) 2026.07.30
421 rint() :: 반올림 모드와 예외를 반영한 정수 반올림 계산하기 (double) 2026.07.30
420 round() :: 중간값을 0에서 멀어지게 반올림 계산하기 (double) 2026.07.30
419 scalbn() :: 기수의 정수 지수로 크기 조정 계산하기 (double) 2026.07.30
418 sin() :: 사인 계산하기 (double) 2026.07.30
417 sinh() :: 쌍곡사인 계산하기 (double) 2026.07.31
416 sqrt() :: 제곱근 계산하기 (double) 2026.07.31
415 tan() :: 탄젠트 계산하기 (double) 2026.07.31
414 tanh() :: 쌍곡탄젠트 계산하기 (double) 2026.07.31
413 tgamma() :: 감마 함수 계산하기 (double) 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 nvpmodel :: 전력 모드 선택하기 2026.08.05
394 std::vector::empty() :: 비어 있는지 확인하기 2026.08.05
393 std::vector::begin() :: 첫 원소의 반복자 얻기 2026.08.05
392 jetson_clocks :: 클럭을 최대치로 고정하기 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 tegrastats :: CPU GPU 메모리 상태 보기 2026.08.11
365 std::deque::push_front() :: 맨 앞에 원소 추가하기 2026.08.11
364 nvcc :: CUDA 코드 컴파일하기 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 TensorRT :: 추론 엔진 최적화하기 2026.09.02
274 nvarguscamerasrc :: CSI 카메라 영상 받기 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
241 std::unordered_map::count() :: 같은 키를 가진 원소 수 세기 2026.09.11
240 std::unordered_map::bucket_count() :: 해시 버킷 개수 조회하기 2026.09.12
239 std::unordered_map::load_factor() :: 버킷당 평균 원소 수 조회하기 2026.09.12
238 std::unordered_map::max_load_factor() :: 재해시 기준 부하율 지정하기 2026.09.13
237 std::unordered_map::reserve() :: 예상 크기만큼 용량 미리 확보하기 2026.09.13
236 std::unordered_map::rehash() :: 해시 버킷 수 재조정하기 2026.09.13
235 std::unordered_map::at() :: 범위 검사와 함께 원소 읽기 2026.09.13
234 std::unordered_map::swap() :: 두 컨테이너 내용 맞바꾸기 2026.09.13
233 std::sort() :: 범위 오름차순 정렬하기 2026.09.14
232 std::stable_sort() :: 같은 키의 순서를 보존하며 정렬하기 2026.09.14
231 std::reverse() :: 반복자 범위의 순서 뒤집기 2026.09.14
230 std::rotate() :: 지정한 원소가 앞으로 오도록 회전하기 2026.09.14
229 std::fill() :: 범위의 모든 원소를 같은 값으로 채우기 2026.09.14
228 std::fill_n() :: 시작점에서 n개 원소 채우기 2026.09.15
227 std::iota() :: 연속해서 증가하는 값 채우기 2026.09.15
226 std::accumulate() :: 초깃값부터 원소 누적하기 2026.09.15
225 std::count() :: 지정한 값의 등장 횟수 세기 2026.09.15
224 std::count_if() :: 조건을 만족하는 원소 수 세기 2026.09.15
223 std::find() :: 값과 같은 첫 원소 찾기 2026.09.16
222 std::find_if() :: 조건에 맞는 첫 원소 찾기 2026.09.16
221 std::find_if_not() :: 조건을 만족하지 않는 첫 원소 찾기 2026.09.16
220 std::all_of() :: 모든 원소가 조건을 만족하는지 확인하기 2026.09.16
219 std::any_of() :: 조건을 만족하는 원소가 하나라도 있는지 확인하기 2026.09.16
218 std::none_of() :: 조건을 만족하는 원소가 없는지 확인하기 2026.09.17
217 std::min_element() :: 가장 작은 원소의 반복자 얻기 2026.09.17
216 std::max_element() :: 가장 큰 원소의 반복자 얻기 2026.09.17
215 std::minmax_element() :: 최솟값과 최댓값의 위치 함께 얻기 2026.09.17
214 std::replace() :: 특정 값을 새 값으로 바꾸기 2026.09.17
213 std::replace_if() :: 조건에 맞는 원소 값을 바꾸기 2026.09.18
212 std::remove() :: 남길 원소를 앞으로 모아 새 끝 얻기 2026.09.18
211 std::remove_if() :: 조건에 맞는 원소를 논리적으로 제거하기 2026.09.18
210 std::unique() :: 인접 중복을 한 개씩만 남기기 2026.09.18
209 std::lower_bound() :: 정렬 범위에서 값 이상인 첫 위치 찾기 2026.09.18
208 std::upper_bound() :: 정렬 범위에서 값보다 큰 첫 위치 찾기 2026.09.19
207 std::binary_search() :: 정렬 범위에 값이 있는지 확인하기 2026.09.19
206 std::equal_range() :: 정렬 범위에서 같은 값의 반열린 구간 얻기 2026.09.19
205 std::is_sorted() :: 범위가 이미 정렬됐는지 확인하기 2026.09.19
204 std::is_sorted_until() :: 정렬이 처음 깨지는 위치 찾기 2026.09.19
203 std::partial_sort() :: 앞의 일부 원소만 정렬하기 2026.09.20
202 std::nth_element() :: n번째 순서 통계량을 제자리에서 찾기 2026.09.20
201 std::partition() :: 조건을 만족하는 원소를 앞으로 모으기 2026.09.20
200 std::stable_partition() :: 상대 순서를 보존하며 조건별로 나누기 2026.09.21
199 std::is_partitioned() :: 조건별로 이미 분리됐는지 확인하기 2026.09.21
198 std::make_heap() :: 범위를 최대 힙으로 만들기 2026.09.21
197 std::push_heap() :: 마지막 새 원소를 기존 힙에 편입하기 2026.09.21
196 std::pop_heap() :: 힙의 최대 원소를 뒤로 보내기 2026.09.21
195 std::sort_heap() :: 힙을 정렬된 범위로 바꾸기 2026.09.22
194 std::is_heap() :: 범위가 힙 조건을 만족하는지 확인하기 2026.09.22
193 std::next_permutation() :: 사전식 다음 순열 만들기 2026.09.22
192 std::prev_permutation() :: 사전식 이전 순열 만들기 2026.09.22
191 std::adjacent_find() :: 이웃한 같은 원소 쌍 찾기 2026.09.22
190 std::for_each() :: 범위의 각 원소에 함수 적용하기 2026.09.23
189 std::transform() :: 각 원소를 함수 결과로 변환하기 2026.09.23
188 std::generate() :: 생성 함수로 원소 채우기 2026.09.23
187 std::copy() :: 원소 범위를 다른 버퍼에 복사하기 2026.09.23
186 std::copy_if() :: 조건에 맞는 원소만 복사하기 2026.09.23
185 std::partial_sum() :: 앞에서부터 누적합 구하기 2026.09.24
184 std::adjacent_difference() :: 이웃 원소 간 차이 구하기 2026.09.24
183 printf :: 서식과 개행을 지정해 안전하게 출력하기 2026.09.24
182 pwd :: 현재 작업 디렉터리 확인하기 2026.09.24
181 cd :: 현재 셸의 작업 디렉터리 바꾸기 2026.09.24
180 type :: 명령이 함수인지 내장인지 확인하기 2026.09.25
179 command :: 셸 함수를 건너뛰고 명령 실행하기 2026.09.25
178 export :: 자식 프로세스에 환경 변수 전달하기 2026.09.25
177 unset :: 셸 변수 또는 함수 제거하기 2026.09.25
176 readonly :: 값을 변경할 수 없는 변수 만들기 2026.09.28
175 local :: bash 함수의 지역 변수 만들기 2026.09.28
174 shift :: 위치 인수 목록을 앞으로 당기기 2026.09.28
173 getopts :: 셸 스크립트의 짧은 옵션 해석하기 2026.09.28
172 test :: 파일과 문자열의 조건 검사하기 2026.09.28
171 case :: 패턴별로 실행 경로 나누기 2026.09.29
170 for :: 인수 목록을 하나씩 순회하기 2026.09.29
169 while :: 조건이 참인 동안 반복하기 2026.09.29
168 until :: 조건이 성공할 때까지 반복하기 2026.09.29
167 break :: 현재 반복문 빠져나오기 2026.09.30
166 continue :: 반복문의 다음 회차로 넘어가기 2026.09.30
165 return :: 셸 함수의 종료 상태 반환하기 2026.09.30
164 exit :: 스크립트 종료 상태 지정하기 2026.09.30
163 wait :: 백그라운드 작업의 종료 기다리기 2026.09.30
162 jobs :: 현재 셸의 작업 목록 보기 2026.10.01
161 fg :: 정지되거나 배경인 작업을 전면으로 옮기기 2026.10.01
160 bg :: 정지된 작업을 백그라운드에서 계속하기 2026.10.01
159 umask :: 셸에서 새 파일의 기본 권한 제한하기 2026.10.01
158 ulimit :: 셸과 자식의 자원 제한 확인하기 2026.10.01
157 source :: 현재 셸에서 다른 스크립트 읽기 2026.10.02
156 alias :: 대화형 명령의 짧은 별명 만들기 2026.10.02
155 unalias :: 등록한 명령 별명 제거하기 2026.10.02
154 hash :: 실행 파일 경로 캐시 확인과 초기화하기 2026.10.02
153 IFS :: 셸 단어 분리 규칙 이해하기 2026.10.02
152 ${value:-default} :: 미설정 변수의 기본값 지정하기 2026.10.03
151 ${value:?message} :: 필수 변수 누락 시 오류 내기 2026.10.03
150 ${#value} :: 변수 문자열 길이 구하기 2026.10.03
149 ${value##pattern} :: 문자열 앞부분 패턴 제거하기 2026.10.03
148 ${value%pattern} :: 문자열 뒷부분 패턴 제거하기 2026.10.03
147 $(command) :: 명령 출력 결과를 변수에 저장하기 2026.10.04
146 $((expression)) :: 셸 정수 계산하기 2026.10.04
145 ( commands ) :: 괄호로 실행 환경 분리하기 2026.10.04
144 { commands; } :: 현재 셸에서 명령 묶기 2026.10.04
143 > / >> :: 표준 출력을 파일에 기록하기 2026.10.04
142 2> :: 오류 출력과 일반 출력 분리하기 2026.10.05
141 2>&1 :: 표준 오류를 표준 출력에 합치기 2026.10.05
140 /dev/null :: 필요 없는 출력 버리기 2026.10.05
139 <<< :: bash에서 문자열 한 줄을 표준 입력으로 넘기기 2026.10.05
138 <(command) :: 명령 출력을 임시 파일 경로처럼 연결하기 2026.10.05
137 bash 배열 :: bash 배열의 항목 경계 보존하기 2026.10.08
136 declare -A :: bash 연관 배열로 키와 값 저장하기 2026.10.08
135 [[ =~ ]] :: bash에서 정규식으로 문자열 검사하기 2026.10.08
134 glob :: 와일드카드로 파일 이름 확장하기 2026.10.08
133 find :: 조건에 맞는 경로 찾기 2026.10.08
132 grep :: 문자열 패턴이 들어 있는 줄 찾기 2026.10.09
131 sed :: 텍스트 줄을 패턴으로 치환하기 2026.10.09
130 awk :: 공백으로 나뉜 열 처리하기 2026.10.09
129 cut :: 구분자로 나뉜 특정 필드 추출하기 2026.10.09
128 sort :: 텍스트 줄 정렬하기 2026.10.10
127 uniq :: 인접한 중복 줄 정리하기 2026.10.10
126 head :: 파일 앞부분 확인하기 2026.10.10
125 tail :: 파일 끝과 추가되는 줄 보기 2026.10.10
124 wc :: 줄과 단어 및 바이트 수 세기 2026.10.12
123 tr :: 문자 집합 변환하기 2026.10.12
122 tee :: 출력을 화면과 파일에 동시에 기록하기 2026.10.12
121 paste :: 여러 파일을 열 방향으로 합치기 2026.10.12
120 join :: 공통 필드 기준으로 두 파일 합치기 2026.10.12
119 comm :: 정렬된 두 파일의 공통과 차이 구하기 2026.10.13
118 diff :: 두 텍스트 파일의 차이 보기 2026.10.13
117 cmp :: 두 파일을 바이트 단위로 비교하기 2026.10.13
116 od :: 파일 바이트를 16진수로 관찰하기 2026.10.13
115 xxd :: 바이너리 파일을 16진 덤프로 보기 2026.10.13
114 file :: 파일 내용을 보고 형식 추정하기 2026.10.15
113 stat :: 파일 메타데이터 표시하기 2026.10.15
112 du :: 경로별 디스크 사용량 보기 2026.10.15
111 df :: 파일 시스템 남은 공간 확인하기 2026.10.15
110 lsblk :: 블록 장치와 파티션 관계 보기 2026.10.15
109 NVIDIA VPI :: 비전 연산 백엔드 활용하기 2026.10.16
108 findmnt :: 현재 마운트 관계 확인하기 2026.10.16
107 ps :: 실행 중인 프로세스 보기 2026.10.16
106 pgrep :: 이름과 조건으로 PID 찾기 2026.10.16
105 top :: CPU와 메모리 사용량 관찰하기 2026.10.16
104 free :: 시스템 메모리 사용량 보기 2026.10.17
103 vmstat :: 메모리와 스케줄링 및 I/O 상태 보기 2026.10.17
102 uptime :: 가동 시간과 load average 확인하기 2026.10.17
101 ss :: 소켓 연결과 대기 포트 조회하기 2026.10.17
100 ip address :: 네트워크 인터페이스 주소 확인하기 2026.10.17
99 ip route :: 패킷 경로와 기본 게이트웨이 확인하기 2026.10.18
98 ping :: ICMP 응답으로 기본 연결 확인하기 2026.10.18
97 curl :: HTTP 응답과 헤더 확인하기 2026.10.18
96 wget :: 다운로드 전에 URL 응답 확인하기 2026.10.18
95 sha256sum :: 파일의 SHA-256 해시 확인하기 2026.10.19
94 tar :: 아카이브 안의 파일 목록 확인하기 2026.10.19
93 gzip :: 파일을 gzip 형식으로 압축하기 2026.10.19
92 rsync :: 파일 차이를 계산해 동기화하기 2026.10.19
91 ssh :: 암호화된 원격 셸 접속하기 2026.10.19
90 scp :: SSH를 통해 파일 복사하기 2026.10.20
89 systemctl :: systemd 서비스 상태 확인하기 2026.10.20
88 journalctl :: systemd 저널에서 로그 조회하기 2026.10.20
87 dmesg :: 커널 메시지 확인하기 2026.10.20
86 strace :: 프로세스의 시스템 호출 추적하기 2026.10.20
85 lsof :: 프로세스가 열고 있는 파일 조회하기 2026.10.21
84 timeout :: 명령의 최대 실행 시간 제한하기 2026.10.21
83 env :: 환경 변수 목록과 실행 환경 지정하기 2026.10.21
82 date :: 날짜 형식과 시간대 확인하기 2026.10.21
81 cudaGetDeviceCount() :: 사용 가능한 CUDA 장치 수 확인하기 2026.10.21
80 cudaGetDevice() :: 현재 스레드가 선택한 CUDA 장치 확인하기 2026.10.22
79 cudaSetDevice() :: 호스트 스레드의 CUDA 장치 선택하기 2026.10.22
78 cudaGetDeviceProperties() :: CUDA 장치 속성 조회하기 2026.10.22
77 cudaDeviceGetAttribute() :: CUDA 장치의 특정 기능 값 조회하기 2026.10.22
76 cudaDriverGetVersion() :: CUDA 드라이버가 지원하는 버전 조회하기 2026.10.22
75 cudaRuntimeGetVersion() :: 연결된 CUDA 런타임 버전 확인하기 2026.10.23
74 cudaMalloc() :: 디바이스 메모리 할당하기 2026.10.23
73 cudaFree() :: 디바이스 메모리 해제하기 2026.10.23
72 cudaMemset() :: 디바이스 메모리를 바이트 값으로 채우기 2026.10.23
71 cudaMemcpy() :: 호스트와 디바이스 사이 데이터 복사하기 2026.10.23
70 cudaMemcpyAsync() :: 스트림에 비동기 복사 제출하기 2026.10.24
69 cudaMallocHost() :: 페이지 잠금 호스트 메모리 할당하기 2026.10.24
68 cudaHostAlloc() :: 옵션을 지정해 페이지 잠금 메모리 확보하기 2026.10.24
67 cudaFreeHost() :: CUDA 페이지 잠금 호스트 메모리 해제하기 2026.10.24
66 cudaMemGetInfo() :: 사용 가능 CUDA 메모리 크기 조회하기 2026.10.24
65 cudaDeviceSynchronize() :: 앞서 제출한 GPU 작업 완료 기다리기 2026.10.25
64 cudaGetLastError() :: 마지막 CUDA 오류를 읽고 상태 초기화하기 2026.10.25
63 cudaPeekAtLastError() :: 마지막 CUDA 오류를 초기화 없이 조회하기 2026.10.25
62 cudaGetErrorString() :: CUDA 오류 코드를 설명 문자열로 바꾸기 2026.10.26
61 cudaGetErrorName() :: CUDA 오류의 심볼 이름 얻기 2026.10.26
60 cudaStreamCreate() :: 비동기 작업 스트림 만들기 2026.10.26
59 cudaStreamCreateWithFlags() :: 플래그와 함께 CUDA 스트림 만들기 2026.10.26
58 cudaStreamDestroy() :: CUDA 스트림 핸들 정리하기 2026.10.26
57 cudaStreamSynchronize() :: 특정 스트림의 작업 완료 기다리기 2026.10.27
56 cudaStreamQuery() :: 스트림 완료 여부를 기다림 없이 확인하기 2026.10.27
55 cudaStreamGetFlags() :: CUDA 스트림 생성 플래그 조회하기 2026.10.27
54 cudaStreamGetPriority() :: CUDA 스트림 우선순위 조회하기 2026.10.27
53 cudaEventCreate() :: CUDA 이벤트 만들기 2026.10.27
52 cudaEventCreateWithFlags() :: 옵션을 지정해 CUDA 이벤트 만들기 2026.10.28
51 cudaEventRecord() :: 현재 스트림 위치에 이벤트 기록하기 2026.10.28
50 cudaEventSynchronize() :: 이벤트 완료까지 호스트 기다리기 2026.10.28
49 cudaEventQuery() :: 이벤트 완료 여부를 비동기로 조회하기 2026.10.28
48 cudaEventDestroy() :: CUDA 이벤트 핸들 해제하기 2026.10.28
47 cudaEventElapsedTime() :: 두 GPU 이벤트 사이 시간 측정하기 2026.10.29
46 cudaStreamWaitEvent() :: 스트림 사이 의존성 설정하기 2026.10.29
45 cudaMallocPitch() :: 행 정렬을 고려한 2차원 디바이스 메모리 할당하기 2026.10.30
44 cudaMemset2D() :: 피치를 가진 2차원 메모리 초기화하기 2026.10.30
43 cudaDeviceGetLimit() :: CUDA 런타임의 장치 제한 값 조회하기 2026.10.30
42 cudaDeviceSetLimit() :: CUDA 장치 런타임 제한 설정하기 2026.10.30

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

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

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

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

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

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

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

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

콕 찔렀습니다!

PC가 이미 켜져 있습니다.

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

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

PC 전원이 켜졌습니다.