Zum Inhalt springen

Manitu

Mitglieder
  • Gesamte Inhalte

    7
  • Benutzer seit

  • Letzter Besuch

  1. Einen neuen Prozess kann am besten mit "spawn" starten. Wenn du das Zielprogramm nicht kennst, startest du am besten den Kommandointerpreter (den findest du in der Umgebungsvariablen ComSpec, geht dann sowohl unter Win9x, als auch NT) mit dieser Datei als Parameter. Ist auf diesen Typ ein Programm gebunden, so wird dies gestartet (so Gott will).
  2. getcwd liefert nur das aktuelle Verzeichnis zurück. Das ist nicht zwingend das, in welchem das Programm liegt (Beispiel ein Service unter Windows. cwd ist immer (!!!!) system32, Datei liegt aber in d:\....). Das Programmverzeichnis ist in der Regel in argv[0] implizit enthalten. Dort wird nämlich der vollständige Programmname mit Pfad angegeben. Das Programmverzeichnis kann man daraus extrahieren. Leider gibt es nun mal keine Regel ohne Ausnahme. Der Programmpfad kann auch fehlen und nur der Programmname enthalten sein. In dem Fall ist cwd gleich dem Programmpfad.
  3. Wenn die Datei nicht allzu groß ist und keine Perfomance notwendig geht das. Wenn die Datei nicht zu groß ist (< 200M) sollte man sie sich direkt in den Speicher mappen (nennt man Memory Mapped Files; WIndows: CreateFile, CreateFileMapping, MapViewOfFile, GetFileSize; Unix: open, mmap, fstat), ansonsten muß man die Datei in Scheiben zerlegen. Bei diesem Verfahren mapped das System dir die Datei direkt in den Speicher (bringt bis zu 3-Zehner Potenzen). Danach muß man dann den Speicher mit Hand zerlegen (Vorsicht: nicht rein schreiben-> geht direkt in die Datei). Also Zeilenende suchen mit strchr (Vorsicht mit \r\n) und Zeilenanfang prüfen. usw bis man hinten ist. Wenn man fündig geworden ist kann man mit strncpy oder memcpy den Bereich rauslesen. Ist aber nicht für C++ Freaks. :-) Geht aber mit jedem C/C++ Compiler.
  4. Manitu

    C++ und POP3

    Alles was im Internet irgendwie einen Standard hat, ist in einer RFC festgelegt. Das POP3 Protokoll wird in der RFC 1081 beschrieben. Die findest du unter http://www.faqs.org/rfcs/rfc1081.html. Dort gibt es auch den Rest. Leider ist der Server etwas zäh. Nicht wundern in allen RFC's wird mit unerfreulicher Häufigkeit "sollte, müsste, könnte, darf" verwendet. Was auch teilweise voll ausgenutzt wird.
  5. Die Fehlermeldung kommt daher, daß Du versucht eine Funktion aufzurufen (FieldByXXX) und das ist beim Evaluieren nicht erlaubt. U.U. macht diese Funktion ja doch noch etwas mehr als lesen. Abhilfe ist, das du alle Elemente einzeln mit inspect durchsuchst. Macht zwar wesentlich mehr Arbeit dafür geht es aber auch. Manitu
  6. #include <windows.h> HANDLE inputhandle = GetStdHandle(STD_INPUT_HANDLE); FlushConsoleInputBuffer(inputhandle); /*sollte reichen.*/ Manitu
  7. Du hast das Betriebssystem vergessen. 1. WindowsNT/2000/XP? ( sollte auch unter 9x gehen) Function NtQuerySystemInformation befindet sich im Header ntexapi.h. Wie die Funktion benutzt wird, würde den Rahmen sprengen. Am besten, du schnuffelst mal durchs Netz. 2. Linux Datei /proc/cpuinfo öffen (kann mit cat angezeigt werden) und auslesen. #include <unistd.h> #include <sys/stat.h> #include <sys/types.h> int main() { int cpuInfo; struct stat fileStatistik; char* cpuInfoBuffer; cpuInfo = open("/proc/cpuinfo", O_RDONLY); if(cpuInfo == -1) return 1; if(fstat(cpuInfo, &fileStatistik) == -1){ close(cpuInfo); return 1; } cpuInfobuffer = (char*) calloc(fileStatistik.st_size+1, 1); if(!cpuInfoBuffer){ close(cpuInfo); return 1; } if(read(cpuInfo, cpuInfoBuffer, fileStatistik.st_size) != fileStatistik.st_size){ close(cpuInfo); return 1; } /*jetzt steht die Datei im Speicher und kann mit strtok, strstr, ... zerlegt werden.*/ close(cpuInfo); free(cpuInfobuffer); } geholfen ? Wenn du aber direkt an die CPU ran willst, hilft nur Assembler und ein gutes Buch und jede Menge Nerven. Manitu

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...