c++获取U盘序列号
int getUDiskSerial(std::vector<std::string>& vUsbSerial)
{
std::string cmd = "lsblk -o \"SERIAL,TRAN\" | grep usb ";
FILE *fp;
int len = 0;
int idx = 0;
char *str;
char usb[256];
memset(usb, 0, 256);
fp = popen(cmd.c_str(), "r");
if(fp == NULL)
{
printf("\n popen error \n");
return -2;
}
while((str = fgets(usb, 255, fp)) != NULL)
{
char *space = strchr(usb, ' ');
std::string line = usb;
std::string udisk = line.substr(0, space - usb);
vUsbSerial.push_back(udisk);
printf("\n line=%s, udisk=%s, len=%d \n", usb, udisk.c_str(), udisk.length());
idx++;
memset(usb, 0, 256);
}
pclose(fp);
return idx;
}