0
Simple 인 경우 파일이 포함 된 장치의 장치 노드를 가져옵니다. 나는 열린 파일의 파일 기술자를 가지고 있으며 그것을 포함하고있는 장치의 노드 이름을 알고 싶다.방법 : 파일 설명자가
Simple 인 경우 파일이 포함 된 장치의 장치 노드를 가져옵니다. 나는 열린 파일의 파일 기술자를 가지고 있으며 그것을 포함하고있는 장치의 노드 이름을 알고 싶다.방법 : 파일 설명자가
libudev 및 fstat을 사용하면 쉽게 만들 수 있습니다.
#include <libudev.h> // udev headers.
#include <sys/stat.h> // for fstat function and stat struct.
#include <iostream> // for printing ouput.
#include <fcntl> // for open function.
using namespace std;
int main(int argc, char *argv[])
{
int fd = open(argv[1], O_RDONLY); // The file can be opened using any other mode, Eg. O_RDWR, O_APPEND, etc...
struct udev *udev = udev_new();
struct stat tb;
fstat(fd, &tb);
struct udev_device* dev = udev_device_new_from_devnum(udev, 'b', tb.st_dev);
cout << "The opened file is located in the device: " << udev_device_get_devnode(dev) << endl;
return 0;
}
함수 호출의 * any *에 대한 오류는 확인하지 않습니다. 이것은 좋은 예제 코드가 아닙니다. –
예제를 더 짧게 만들기 위해 오류를 확인하지 않습니다. 디바이스 노드를 얻는 목적을 달성하기 위해 따라야 할 경로를 보여주기 때문에 좋은 예제 코드가 아니라는 점에 대해 저는 매우 좋아합니다. 훌륭한 제작 코드는 아니지만 확실히 좋은 예입니다. –