Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Linux中,哪个系统调用返回连接到系统的设备列表?_Java_C_Linux - Fatal编程技术网

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

Java 在Linux中,哪个系统调用返回连接到系统的设备列表?,java,c,linux,Java,C,Linux,我正在尝试编写一个C/Java程序,它将显示连接到系统的设备列表。非常感谢您在这方面提供的任何帮助。在Linux中,您最好迭代/sys/层次结构。据我所知,没有这样的系统调用。命令将返回所有连接的USB设备(对于Linux内核2.3.15或更高版本) 如果您想直接从代码调用c函数调用,有一些建议。我想您的意思是列出系统上已安装的设备。如果您使用的是Linux,那么/proc/mounts文件的基本读取(例如,c中的fopen、fscanf)将告诉您实时装载的设备 您想编写C或java,下面是一个

我正在尝试编写一个C/Java程序,它将显示连接到系统的设备列表。非常感谢您在这方面提供的任何帮助。

在Linux中,您最好迭代
/sys/
层次结构。据我所知,没有这样的系统调用。

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


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

我想您的意思是列出系统上已安装的设备。如果您使用的是Linux,那么/proc/mounts文件的基本读取(例如,c中的fopen、fscanf)将告诉您实时装载的设备

您想编写C或java,下面是一个示例: C代码:

#包括
int main()
{
char*filename=“/proc/mounts”;
FILE*fp=fopen(文件名,“r”);
字符行[1000];
字符名称[1000];
而(!feof(fp)){
fgets(生产线,1000,fp);
sscanf(行,“%s”,名称);
printf(“%s\n”,mountname);
}
返回0;
}
看看这个命令

您可以传递lshw的输出并提取有关
磁盘
磁带
存储
(存储控制器、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必须作为超级用户运行,否则它将只报告部分信息


是否有任何JAVA API可用于获取连接到系统的设备列表?@user2201980遗憾的是,我不熟悉JAVA IO。
address
bridge
bus
communication
disk
display
generic
input
memory
multimedia
network
power
printer
processor
storage
system
tape
volume