哪个进程更新/proc/scsi/scsi?

哪个进程更新/proc/scsi/scsi?

我编写了 C 来显示有关 ubuntu 上我的硬件的信息。现在我想知道如何使其更加灵活,例如直接查询硬件而不是操作系统更新的文件。所以我想我可以看看写入的内容/proc/scsi/scsi并执行相同的操作,以便该代码也可以在可以使用 /proc/scsi/scsi 之外的其他方法的 unice 上运行,这样我就可以学习如何显示硬件信息。

#include <stdio.h>
#include <stdlib.h>
int main()
{
   char ch, file_name[25] = "/proc/scsi/scsi";
   FILE *fp; 
   fp = fopen(file_name,"r"); // read mode 
   if( fp == NULL )
   {
      perror("Error while opening the file.\n");
      exit(EXIT_FAILURE);
   } 
   printf("The contents of %s file are :\n", file_name); 
   while( ( ch = fgetc(fp) ) != EOF )
      printf("%c",ch); 
   fclose(fp);
   return 0;
}

对我来说它看起来像这样

$ cc driveinfo.c;./a.out 
The contents of /proc/scsi/scsi file are :
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500JS-75N Rev: 10.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST3250824AS      Rev: 3.AD
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: TSSTcorp Model: DVD+-RW TS-H653A Rev: D300
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: Optiarc  Model: DVD-ROM DDU1681S Rev: 102A
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: Lexar    Model: USB Flash Drive  Rev: 1100
  Type:   Direct-Access                    ANSI  SCSI revision: 00
Host: scsi5 Channel: 00 Id: 00 Lun: 00
  Vendor: WD       Model: 5000AAKB Externa Rev: l108
  Type:   Direct-Access                    ANSI  SCSI revision: 00

它可以在其他unices(例如bsd)上运行吗?如何让它在 ms-windows 上运行?我可以直接查询硬件而不是文件吗/proc/scsi/scsi

答案1

文件系统/proc不是真实的,它是内核内部数据的视图,导出为看起来像文件。它存在于 Linux 和 Solaris 中(这个想法是从那里无耻地窃取的),也许还有其他 Unixy 系统。该格式非常依赖于系统(甚至在 Linux 内核版本之间发生了很大的变化)。

确实没有任何半途可移植的方式来查找硬件数据(也不可能,一些 Unices 和类似的东西运行在非常奇怪的铁上)。

答案2

/proc 文件系统是以 Linux 为中心的,所以答案是否定的。 BSD 系统使用 sysctl 来获取此类信息。我认为,对于 Windows,这不是最好的询问组。 :)

相关内容