I am trying to write a C / Java program which will display list of devices attached to system. Any help in this regard is highly appreciated.
问问题
1524 次
4 回答
0
在 Linux 中,您可能最好通过迭代/sys/
层次结构。据我所知,没有这样的系统调用。
于 2013-08-10T11:18:34.233 回答
0
我认为您的意思是列出系统上已安装的设备。如果您使用的是 Linux,则对文件 /proc/mounts 的基本读取(例如 fopen、c 中的 fscanf)会告诉您实时安装的设备。
你想写 C 或 java,所以这里有一个例子: C 代码:
#include <stdio.h>
int main()
{
char *filename = "/proc/mounts";
FILE *fp = fopen(filename, "r");
char line[1000];
char mountname[1000];
while(!feof(fp)) {
fgets(line, 1000, fp);
sscanf(line, "%s", mountname);
printf("%s\n", mountname);
}
return 0;
}
于 2013-08-10T11:22:41.443 回答
0
看一下lshw命令。
您可以通过 lshw 的输出并提取有关disk
、 tape
、storage
(存储控制器、scsi、sata、sas)和许多其他类中的设备的详细信息。
使用-short
提供简洁摘要的选项。
例子
sudo lshw -class storage -class disk -class tape -short
输出
H/W path Device Class Description
==================================================================================
/0/100/4/0 storage JMB362 SATA Controller
/0/100/b/0 scsi1 storage SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
/0/100/b/0/0.0.0 /dev/sdd disk 1TB WDC WD10EARS-00Y
这是作为命令参数传递的可能类的列表:
address
bridge
bus
communication
disk
display
generic
input
memory
multimedia
network
power
printer
processor
storage
system
tape
volume
作为注释中的lshw手册页报告
lshw 必须以超级用户身份运行,否则它只会报告部分信息。
于 2013-08-10T11:23:06.763 回答