哪个系统调用返回在Linux系统连接的设备列表?

我正在写一个C / Java程序,它将显示连接到系统的设备列表。 任何在这方面的帮助,高度赞赏。

从C#运行bat脚本

使用-std = c99进行编译时,使用struct ip_mreq消失

问题与pThread同步问题

在窗体区域外绘图时如何重绘

在仅消息窗口中抽取消息

lsusb命令将返回所有连接的USB设备(对于Linux内核2.3.15或更高版本)

这里有一些建议,如果你想直接从你的代码调用c函数调用。

在Linux中,您可能最好通过迭代/sys/ hierarchy。 就我所知,没有这样的系统调用。

我想你的意思是列出您的系统上安装的设备。 如果您使用的是Linux,那么文件/ proc / mounts中的基本读取(例如,f中的fscanf,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("%sn",mountname); } return 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

作为Notes中的lshw手册页报告

lshw必须以超级用户身份运行,否则只会报告部分信息。

相关文章

本文从从Bitcask存储模型讲起,谈轻量级KV系统设计与实现。从...
内部的放到gitlab pages的博客,需要统计PV,不蒜子不能准确...
PCM 自然界中的声音非常复杂,波形极其复杂,通常我们采用的...
本文介绍如何离线生成sst并在线加载,提供一种用rocksdb建立...
验证用户输入是否正确是我们应用程序中的常见功能。Spring提...
引入pdf2dom &lt;dependency&gt; &lt;groupId&a...