有没有办法在C应用程序中运行命令提示符命令?我想使用wmic diskdrive get serialnumber
命令检查硬盘驱动器的制造商序列号。
答案 0 :(得分:2)
有许多功能允许您从C调用外部程序,其中一些"standard",其中一些是specific to Windows。
但是在你的场景中,我建议你使用Windows提供的WMI API,你可以在stackoverflow上找到这方面的例子:
How to obtain data from WMI using a C Application? how to run a wmi query in c
我没有提供示例,而是与SO上现有的答案相关联,因为我认为复制已有的答案是有意义的。
答案 1 :(得分:0)
您可以尝试使用popen: -
#include<stdio.h>
#include<string.h>
int main()
{
char c;
FILE *file = popen("wmic diskdrive get serialnumber", "r");
if (file) {
while ((c = getc(file)) != EOF)
putchar(c);
fclose(file);
}
return 0;
}
由于这是一个文件对象,您现在可以根据需要轻松将其写入文件,并随意检索它。
答案 2 :(得分:-1)
是的,你可以。然而,这被认为是不好的做法,因为它会使您的应用程序不必要地依赖于平台并产生开销。
喜欢这样
#include <stdio.h>
#include <string.h>
void main ()
{
system("wmic diskdrive get serialnumber");
}
详细了解here 关于输出(引自上面的链接):
错误时返回的值为-1,并且返回的状态为 否则命令。
您还可以使用ReadConsoleOutputCharacter函数(链接到msdn引用入站)来读取控制台输出。
在尝试使用命令提示符获取此类数据之前,请考虑使用API或任何其他方法来检索数据,因为通过调用命令提示符,您将为应用程序添加荒谬的开销,这是不必要的。