2012-08-23 19 views
0

驅動程序是否知道有關調用open的應用程序的任何信息?驅動程序可以獲得有關打開函數的信息?

我正在使用驅動程序來支持2個類似但不同的設備。我希望能夠指定在應用程序中打開時調用哪個特定設備。我使用符號鏈接將每個設備鏈接到驅動程序的名稱,以便我可以撥打open("/dev/dev1"...open("/dev/dev2"...而不是open("/dev/drivername"...,並且希望能夠在打開的函數中使用此符號鏈接名稱(如果這在某種程度上可行)。

回答

0

不,這不起作用。驅動程序不會獲得有關用於打開節點的路徑的任何信息。設備節點由主/次編號和字符/塊類型指定,就是這樣。如果你想要區分不同的「命名」節點,可能它們應該有不同的次要數字。

+0

嗯,這是令人失望的。如果它是一個選項,我將不得不考慮分配不同的次要數字。目前,只有驅動程序名稱的/ dev /中有一個條目,符號鏈接的兩個條目不管連接的設備數量如何。 – Chris

+0

文件結構如何?可以打開不使用這個結構來找出路徑嗎? – Chris

+0

'struct file'不包含路徑,只是一個inode。但即使你獲得了文件的絕對路徑,也不會得到你想要的,這是內核已經擴展和丟棄的符號鏈接的路徑。 –

相關問題