MemTotal anzeigen
-
Hallo,
Ich versuche ganz verzweifelt unter Linux
einen Programm zu schreiben was dir anzeigt wv
Arbeitspeicher dein Rechner hat .fstream fout; char buffer[1024]; char* match; fout.open("/proc/meminfo",ios::out | ios::in); while(fout.good()) { fout>>buffer; } match = strstr(buffer,"MemTotal"); if(match==NULL) exit(1); wxString mystring(match, wxConvUTF8); textctrl2->SetValue(mystring);Irgendwie schliesst das Programm wenn ich auf button klick ...
Das gleiche Programm hab ich mit C geschafft mit Filedeskriptor.Grüsse
-
Was genau denkst du macht Zeile 7?
-
Die Datei sieht so oder so ähnlich aus:
MemTotal: 16151304 kB MemFree: 4449084 kB Buffers: 8 kB Cached: 8077000 kB SwapCached: 0 kB Active: 6641884 kB Inactive: 2220244 kB Active(anon): 797468 kB Inactive(anon): 173136 kB Active(file): 5844416 kB Inactive(file): 2047108 kB Unevictable: 8 kB Mlocked: 8 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 2652 kB Writeback: 0 kB AnonPages: 785484 kB Mapped: 2358368 kB Shmem: 185484 kB Slab: 491160 kB SReclaimable: 429792 kB SUnreclaim: 61368 kB KernelStack: 3304 kB PageTables: 19676 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8075652 kB Committed_AS: 6193684 kB VmallocTotal: 34359738367 kB VmallocUsed: 321872 kB VmallocChunk: 34359315727 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8192 kB DirectMap2M: 16488448 kBWieso willste diese Datei zum Schreiben öffnen?
Also damit kriege ich eine Zahl, auch wenn der Code nur mal kurz hingeschmiert ist, das wirste besser machen können:#include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream in("/proc/meminfo"); string name; int value; while(in>>name>>value && in.ignore(1000,'\n')){ if(name=="MemTotal:") cout<<name<<value<<'\n'; } }
-
Hmm ich hab fstream schon lange nicht verwendet aber ich glaub
damit konnte man doch des was in der Datei meminfo ist raus lesen.
-
AirTrake schrieb:
Hmm ich hab fstream schon lange nicht verwendet aber ich glaub
damit konnte man doch des was in der Datei meminfo ist raus lesen.Nein, wirklich!
Edit: Wenn du Windows hättest: GetPhysicallyInstalledSystemMemory()
-
Oder auf Linux:
#include <sys/sysinfo.h> #include <iostream> #include <complex> #include <iomanip> unsigned getAmountOfRAM() { struct sysinfo i; if(!sysinfo(&i)) return i.totalram; return 0; } int main() { std::cout << "Amount of System Memory: " << std::fixed << std::setprecision(2) << static_cast<float>(getAmountOfRAM()) / 1024 << " Megabytes\n"; }
-
Ich bin gerade am lernen wie man mit dem System umgeht usw. deswegen waers mir
lieber ohne funktionen . Ich weis aber nicht was ich falsch mach.
-
@Hacker: Gib doch einfach -1 zurück, oder wirf einen runtime_error. Aber sicher keinen logic_error.
-
314159265358979 schrieb:
@Hacker: Gib doch einfach -1 zurück, oder wirf einen runtime_error. Aber sicher keinen logic_error.
Editiert. Ich war in Eile (ohne Scheiß)

Und, falls es dir noch nicht aufgefallen ist, der Rückgabetyp ist unsigned. Da geb ich lieber einfach 0 zurück.
-
Ja und wie kann ich des jetzt mit fstream machen?
-
Upss Volkard hab dein beitrag nicht gesehen Super 1 Klappt

Vielen Dank an alle!