我正在使用bash脚本来获取可移动设备(如笔驱动器)的序列号,用于我的另一个应用程序。有人可以将此bash转换为C吗?
#!/bin/bash for C in `ls /sys/block/`; do RE=`cat /sys/block/$C/removable` if [ $RE == "1" ] ;then #VENDOR=`/bin/udevadm info --name=/dev/$C | grep ID_VENDOR=|awk -F"=" ' { print $2}'` #MODEL=`/bin/udevadm info --name=/dev/$C | grep ID_MODEL=|awk -F"=" ' { print $2}'` #SERIAL=`/bin/udevadm info --name=/dev/$C | grep SERIAL_SHORT|awk -F"=" ' { print $2}'` #echo $VENDOR-$MODEL"-"$SERIAL #print as per your taste USB_SERIAL=`/bin/udevadm info --name=/dev/$C | grep ID_SERIAL=|awk -F"=" ' { print $2}'|awk -F"-" ' { print $1}'` echo $USB_SERIAL #or just the default one fi done
我不想使用系统调用。需要纯C程序
我正在使用bash脚本来获取可移动设备(如笔驱动器)的序列号,用于我的另一个应用程序。有人可以将此bash转换为C吗?#!/ bin / ...
这里的主要挑战是,由于您不想使用system()
,因此要模拟udevadm info
的工作。下面的程序(至少在我的系统上)通过从/run/udev/data/bMAJOR:MINOR
读取信息来执行此操作,其中MAJOR