std::filesystem::is_socket

std::filesystem::is_socket (네임드 소켓인지 확인)

주어진 파일 상태나 경로가 네임드 IPC 소켓에 해당하는지 확인하는 함수예요. C++17부터 있어요.

출처: cppreference

본문

<filesystem> 헤더에 정의돼 있어요.

bool is_socket( std::filesystem::file_status s ) noexcept;  // (1) C++17
bool is_socket( const std::filesystem::path& p );           // (2) C++17
bool is_socket( const std::filesystem::path& p, std::error_code& ec ) noexcept; // (3) C++17

주어진 파일 상태나 경로가 POSIX S_IFSOCK이 판정하는 것처럼 네임드 IPC 소켓인지 검사해요.

    1. s.type() == file_type::socket과 동등해요.
  • 2,3) 각각 is_socket(status(p)) 또는 is_socket(status(p, ec))와 동등해요.

매개변수

  • s — 확인할 file status
  • p — 검사할 경로
  • ec — 예외 없는 버전에서 오류 보고용 출력 매개변수

반환값

p가 가리키는 파일 또는 s가 나타내는 유형이 네임드 소켓이면 true, 아니면 false예요. 예외 없는 버전은 오류 시 false를 돌려줘요.

예외

noexcept로 표시되지 않은 오버로드는 메모리 할당이 실패하면 std::bad_alloc을 던질 수 있어요.

  • 2,3) OS API 호출이 실패하면 ec에 OS 오류 코드를 설정하고, 오류가 없다면 ec.clear()를 실행해요.

참고

네임드 소켓은 POSIX socketbind API로 만들어진 UNIX 도메인 소켓이에요. 고급 프로세스 간 통신에 쓰일 수 있어요. 특히 표준 스트림으로 데이터를 전송하는 데 쓸 수 있어요.

더 알아보기 (Learn more)

cppreference