Ich habe den folgenden Code:finden vendor_id proc/cpuinfo
#include <stdio.h>
#include <string.h>
char* get_cpu_vendor_id()
{
FILE* fp;
char buffer[1024];
size_t bytes_read;
char* match;
char* vendor_id;
fp = fopen ("/proc/cpuinfo", "rb");
bytes_read = fread (buffer, 1, sizeof (buffer), fp);
fclose (fp);
if (bytes_read == 0 || bytes_read == sizeof (buffer))
return 0;
buffer[bytes_read] == '\0';
match = strstr (buffer, "vendor_id");
printf("%s", match);
if (match == NULL)
return 0;
sscanf (match, "vendor_id : %s", vendor_id);
return vendor_id;
}
int main()
{
printf ("Vendor ID Of The Processor: %s\n", get_cpu_vendor_id());
return 0;
}
es funktioniert gut, aber ich möchte nicht die ganze Reihe von Informationen so drucken, wenn ich die Anweisung printf("%s", match);
Funktion entfernen get_cpu_vendor_id()
jede beliebige zurück Wert ich bin nicht in der Lage, den Fehler
@bigbounty was ist das Problem hier –
Eine Möglichkeit Regex zu verwenden ist oder nach Ihrem Code, müssen Sie einige Speicher zuweisen für sscanf. – bigbounty