개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.30 21:56

posix_sysconf 함수 사용에 대한 질문

목록
  • CI/CD장인 2일 전 2025.03.30 21:56
  • 2
    1
저는 posix_sysconf 함수를 사용하여 시스템 설정 정보를 가져오려는데, _SC_PAGESIZE 상수와 관련된 문제가 있습니다.

저는 _SC_PAGESIZE 상수를 사용하여 시스템의 페이지 크기를 얻으려고 합니다. 하지만, 이 상수는 실제 페이지 크기를 반환하는지 아니면 가상 페이지 크기를 반환하는지 모릅니다.

_SC_PAGESIZE 상수가 실제 페이지 크기를 반환하는지 확인하고, 어떻게 사용해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    _SC_PAGESIZE 상수는 시스템의 가상 페이지 크기를 반환합니다. 가상 페이지 크기는 실제 메모리 페이지 크기보다 작을 수 있습니다.

    예를 들어, 시스템의 실제 페이지 크기가 4096 바이트일 때, 가상 페이지 크기는 4096 바이트보다 작을 수 있습니다.

    _SC_PAGESIZE 상수를 사용하여 시스템의 가상 페이지 크기를 가져올 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        long pageSize = sysconf(_SC_PAGESIZE);
    
        printf("가상 페이지 크기: %ld 바이트n", pageSize);
    
        return 0;
    
    }
    
    


    위 코드를 실행하면 시스템의 가상 페이지 크기가 출력됩니다.

    만약 실제 페이지 크기를 가져올 필요가 있다면, `/proc/meminfo` 파일을 읽어 실제 페이지 크기를 가져올 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        FILE *fp = fopen("/proc/meminfo", "r");
    
        if (fp == NULL) {
    
            perror("fopen");
    
            return 1;
    
        }
    
    
    
        char line[1024];
    
        while (fgets(line, sizeof(line), fp) != NULL) {
    
            if (strstr(line, "Page size") != NULL) {
    
                sscanf(line, "Page size: %ld kB", &pageSize);
    
                printf("실제 페이지 크기: %ld 바이트n", pageSize * 1024);
    
                break;
    
            }
    
        }
    
    
    
        fclose(fp);
    
        return 0;
    
    }
    
    


    위 코드를 실행하면 시스템의 실제 페이지 크기가 출력됩니다.

    하지만, `/proc/meminfo` 파일을 읽는 방법은 운영체제에 따라 다를 수 있습니다.

    따라서, 시스템의 실제 페이지 크기를 가져올 필요가 있다면, 운영체제의 문서를 참조하거나, `/proc/meminfo` 파일을 읽는 방법을 직접 구현하는 것이 좋습니다.

    2025-03-30 21:57

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,245건 / 14 페이지

검색

게시물 검색