-
Notifications
You must be signed in to change notification settings - Fork 2
Description
这是一个函数,具体功能是获取硬盘的序列号,但是只能输出,并不能存储下来,具体的是使用shell的system()函数进行操作,关键语句是:
snprintf(command, sizeof(command), "sudo hdparm -i %s | grep SerialNo > %s | tee -a 2.log", disk_name.c_str(), hdparm_result); //将命令写入commond中
num=system(command); //调用system()函数,屏幕输出硬盘序列号
函数代码:
static bool get_disk_serial_by_way_3(const std::string & disk_name,std::string & serial_no)
{
int num;
printf("\n--------------6---------------\n");
serial_no.c_str();
const char * hdparm_result = ".hdparm_result.txt";
char command[512] = { 0 };
snprintf(command, sizeof(command), "sudo hdparm -i %s | grep SerialNo > %s | tee -a 2.log", disk_name.c_str(), hdparm_result);
num=system(command);
printf("the value of system is %d.\n",num);
if (0 == system(command))//Judge function system() whether come into effect
{
get_serial(hdparm_result, "SerialNo=", serial_no);
}
unlink(hdparm_result);
return(!serial_no.empty());
}
问了一些人,有人说将commond的内容改成
sudo hdparm -i %s | grep SerialNo > %s | tee -a 2.log 即将信息写入到2.log文本,然后通过读取2.log文本来实现读取存储到序列号来