QDBusUnixFileDescriptor Class
QDBusUnixFileDescriptor 클래스는 하나의 Unix 파일 설명자를 보유합니다. 더 보기...
| 헤더: | #include <QDBusUnixFileDescriptor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDBusUnixFileDescriptor는 암시적 공유 클래스의 일부입니다.
공개 함수
| QDBusUnixFileDescriptor() | |
| QDBusUnixFileDescriptor(int fileDescriptor) | |
| QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other) | |
| ~QDBusUnixFileDescriptor() | |
| int | fileDescriptor() const |
| bool | isValid() const |
| void | setFileDescriptor(int fileDescriptor) |
| void | swap(QDBusUnixFileDescriptor &other) |
| QDBusUnixFileDescriptor & | operator=(QDBusUnixFileDescriptor &&other) |
| QDBusUnixFileDescriptor & | operator=(const QDBusUnixFileDescriptor &other) |
정적 공용 멤버
| bool | isSupported() |
상세 설명
QDBusUnixFileDescriptor 클래스는 Qt D-Bus 모듈과 함께 사용하기 위해 하나의 Unix 파일 디스크립터를 보관하는 데 사용됩니다. 이를 통해 애플리케이션은 D-Bus 연결을 통해 Unix 파일 디스크립터를 송수신할 수 있으며, D-Bus 유형 'h'에 자동으로 매핑됩니다.
QDBusUnixFileDescriptor 유형의 객체는 QDBusConnection::registerObject 에 등록하여 D-Bus로 내보내는 신호 및 슬롯의 매개변수로도 사용할 수 있습니다.
QDBusUnixFileDescriptor는 파일 디스크립터의 소유권을 가져가지 않습니다. 대신, Unix 시스템 호출인 dup(2) 를 사용하여 파일 디스크립터의 복사본을 만듭니다. 이 파일 디스크립터는 QDBusUnixFileDescriptor 객체에 속하므로 사용자가 저장하거나 닫아서는 안 됩니다. 대신, 필요한 경우 직접 복사본을 만들어야 합니다.
사용 가능 여부
유닉스 파일 디스크립터 전달 기능은 모든 D-Bus 연결에서 사용할 수 있는 것은 아닙니다. 이 기능은 유닉스 시스템에서 D-Bus 라이브러리 및 버스 데몬 버전 1.4 이상에서 제공됩니다. Qt D-Bus 는 컴파일 시 및 실행 시 해당 버전이 발견되면 이 기능을 자동으로 활성화합니다.
연결이 파일 디스크립터 전달을 지원하는지 확인하려면, ` QDBusConnection::connectionCapabilities()`를 통해 ` QDBusConnection::UnixFileDescriptorPassing ` 기능이 설정되어 있는지 확인하십시오. 이 플래그가 활성화되어 있지 않으면, `QDBusUnixFileDescriptor`를 인수로 갖는 메서드를 호출할 수 없으며, 심지어 변수에 해당 유형을 포함시킬 수도 없습니다. 또한 해당 유형을 포함하는 호출을 수신할 수도 없습니다.
또한 원격 애플리케이션이 Unix 파일 디스크립터 전달을 지원하지 않을 수도 있다는 점에 유의하십시오. 해당 유형을 수신할 수 없는 원격 애플리케이션에 D-Bus 호출을 수행하면 오류 응답을 받게 됩니다. D-Bus 파일 디스크립터가 포함된 신호를 전송하거나 메서드 호출에서 이를 반환하려고 시도하면, 해당 메시지는 아무런 오류 메시지 없이 무시됩니다.
이 기능을 사용할 수 없는 경우에도 QDBusUnixFileDescriptor는 계속 작동하므로, 코드에서 이 기능의 사용 가능 여부를 컴파일 시점에 확인할 필요는 없습니다.
유닉스가 아닌 시스템에서는 QDBusUnixFileDescriptor가 항상 무효 상태를 보고하며, QDBusUnixFileDescriptor::isSupported()는 false를 반환합니다.
QDBusConnection::ConnectionCapabilities 및 QDBusConnection::connectionCapabilities()도 참조하십시오 .
멤버 함수 문서
QDBusUnixFileDescriptor::QDBusUnixFileDescriptor()
래핑된 파일 디스크립터 없이 QDBusUnixFileDescriptor 객체를 생성합니다. 이는 유효하지 않은 파일 디스크립터(예: -1)를 사용하여 객체를 생성하는 것과 동일합니다.
fileDescriptor() 및 isValid()도 참조하십시오 .
[explicit] QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(int fileDescriptor)
fileDescriptor 매개변수를 복사하여 QDBusUnixFileDescriptor 객체를 생성합니다. 원본 파일 디스크립터는 변경되지 않으며, 사용자가 직접 닫아야 합니다.
fileDescriptor() 함수가 반환하는 값은 전달된 fileDescriptor 매개변수와 다를 수 있다는 점에 유의하십시오.
fileDescriptor 매개변수가 유효하지 않은 경우, isValid()는 false를 반환하고 fileDescriptor()는 -1을 반환합니다.
setFileDescriptor() 및 fileDescriptor()도 참조하십시오 .
QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other)
other 를 복사하여 QDBusUnixFileDescriptor 객체를 생성합니다.
[noexcept] QDBusUnixFileDescriptor::~QDBusUnixFileDescriptor()
이 QDBusUnixFileDescriptor 객체를 파기하고, 해당 객체가 포함하고 있던 Unix 파일 디스크립터를 해제합니다.
int QDBusUnixFileDescriptor::fileDescriptor() const
이 ` QDBusUnixFileDescriptor ` 객체가 포함하고 있는 유닉스 파일 디스크립터를 반환합니다. 유효하지 않은 파일 디스크립터는 -1 값으로 나타납니다.
이 함수가 반환하는 파일 디스크립터는 QDBusUnixFileDescriptor 객체가 소유하고 있으므로, 이 객체의 수명이 끝난 후에도 저장해 두어서는 안 됩니다. 이 객체가 유효한 동안에는 이를 사용하는 것이 가능하지만, 더 오래 사용하기 위해 저장하고 싶다면 Unix의 dup(2), dup2(2) 또는 dup3(2) 함수를 사용하여 파일 디스크립터를 복제해야 합니다.
setFileDescriptor() 및 isValid()도 참조하십시오 .
[static] bool QDBusUnixFileDescriptor::isSupported()
이 플랫폼에서 유닉스 파일 디스크립터가 지원되는 경우 true 를 반환합니다. 다시 말해, 이 함수는 유닉스 플랫폼인 경우 true 를 반환합니다.
이 함수가 ` false`를 반환하더라도 ` QDBusUnixFileDescriptor `은 계속 작동한다는 점에 유의하십시오. 유일한 차이점은 ` QDBusUnixFileDescriptor ` 객체가 항상 ` isValid()` == false 상태가 되고, ` fileDescriptor()`가 항상 -1을 반환한다는 것입니다. 이 클래스는 운영 체제 자원을 전혀 소비하지 않습니다.
bool QDBusUnixFileDescriptor::isValid() const
이 유닉스 파일 설명자가 유효한 경우 true 를 반환합니다. 유효한 유닉스 파일 설명자는 -1이 아닙니다.
fileDescriptor()도 참조하십시오 .
void QDBusUnixFileDescriptor::setFileDescriptor(int fileDescriptor)
이 ` QDBusUnixFileDescriptor ` 객체가 보유한 파일 설명자를 ` fileDescriptor`의 복사본으로 설정합니다. 원래의 파일 설명자는 변경되지 않으며, 사용자가 직접 닫아야 합니다.
fileDescriptor()가 반환하는 값은 전달된 fileDescriptor 매개변수와 다를 수 있습니다.
fileDescriptor 매개변수가 유효하지 않은 경우, isValid()는 false를 반환하고 fileDescriptor()는 -1을 반환합니다.
isValid() 및 fileDescriptor()도 참조하십시오 .
[noexcept] void QDBusUnixFileDescriptor::swap(QDBusUnixFileDescriptor &other)
이 파일 설명자 인스턴스를 other 와 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
[noexcept] QDBusUnixFileDescriptor &QDBusUnixFileDescriptor::operator=(QDBusUnixFileDescriptor &&other)
other 를 이 QDBusUnixFileDescriptor 로 이동-할당합니다.
QDBusUnixFileDescriptor &QDBusUnixFileDescriptor::operator=(const QDBusUnixFileDescriptor &other)
other QDBusUnixFileDescriptor 객체에서 Unix 파일 디스크립터를 복사합니다. 현재 객체에 파일 디스크립터가 포함되어 있는 경우, 복사 전에 해당 파일 디스크립터가 적절하게 해제됩니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.