| Autor |
Nachricht |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
14:06:05 29.01.2012 Titel: |
Prozesse einzelnd einlesen ! |
Zitieren |
Hallo,
Ich möchte mit Listen einzelnd alle Prozesse einlesen auf Linux.
Wie könnte ich das realisieren mir fällt nichts ein. Prozesse erstellen
Kann ich ja aber einlesen hmm ...
Viele Grüsse ! |
_________________ no risk no fun!
|
|
 |
C++ Forumbot
Forumbot
Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 16160
|
C++ Forumbot Forumbot
14:36:51 29.01.2012 Titel: |
|
Zitieren |
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
14:43:09 29.01.2012 Titel: |
|
Zitieren |
Stell doch mal brauchbare Fragen, anstatt 3 Zeilen ins falsche Forum zu kotzen. Mit über 100 Beiträgen sollte man doch mal so langsam mitbekommen haben, wie das hier läuft. Das dumme ist bloß, dass du vermutlich auch mit dieser Frage eine Antwort bekommst und wieder nix lernst.
Deine Frage provoziert bei mir spontan 11 Gegenfragen, die du ohne Probleme gleich hättest beantworten können, bzw. durch Klarstellung gleich ganz hättest vermeiden können:
- Listen? Meinst du std::list?
- Wenn ja, warum?
- Wo wäre beim Einlesen der Unterschied zu jeder anderen Datenstruktur?
- Wieso hältst du es für nötig, in deiner Frage ausdrücklich Listen zu erwähnen?
- Hast du spezielle Probleme mit Listen?
- Wieso willst du die Prozesse unbedingt einzeln lesen? Warum ist das wichtig?
- Hast du Probleme, die Prozesse zu lesen? Ist es das, was du wissen möchtest?
- Was hast du schon gemacht? Was weist du schon?
- Wobei hast du Schwierigkeiten?
- Wieso erwähnst du eigene Prozesse? Willst du nur selbst erstellte Prozesse lesen?
- Was genau meinst du eigentlich mit "Lesen"?
|
Zuletzt bearbeitet von SeppJ am 14:44:53 29.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
15:05:44 29.01.2012 Titel: |
|
Zitieren |
Also ich erwarte auf jeden Fall keine vollständige Lösung!
Und das mit den NodeList wird dann auch meine Aufgabe sein.
Ich weis jetzt nur nicht wie das einlesen der Prozesse unter
Linux funktioniert.Ich möchte dann z.B einzeln alle Prozesse
einlesen und sie dann Ausgeben.Mit lesen mein ich das ich dann
alle Prozesse irgendwie habe und dann gezielt auf eins zugreifen
kann.Wenn ich einfach nur ps -A werden mir alle Prozesse angezeigt
kann aber nicht einzelnd damit was machen.
z.B. dann einzelnd jedes Prozess untereinander in ein textdatei
speichern.
Entschuldigung wenn ich mich falsch formuliert habe. |
_________________ no risk no fun!
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
15:55:32 29.01.2012 Titel: |
|
Zitieren |
Die Prozesse stehen in /proc. Falls du mehr Details wissen möchtest als nur die Prozess-ID ist das Format auch dokumentiert, das meiste solltest du dir aber auch selbst erschließen können. Die Verzeichniseinträge und Inhalte kannst du mit den (dir hoffentlich) bekannten Methoden lesen. Auch einzeln (genauer gesagt müsste ich jetzt erst einmal nachdenken, ob und wie das auch nicht-einzeln ginge). Diese Methode ist meines Wissen nach auch das, was z.B. ps oder ähnliche Tools benutzen (übrigens ist die Ausgabe von ps sehr wohl getrennt. Stehen schließlich newlines zwischen den Prozessen).
edit: Hier auch noch der Quellcode von ps und ähnlichen Tools:
http://procps.sourceforge.net/index.html |
Zuletzt bearbeitet von SeppJ am 15:57:04 29.01.2012, insgesamt 2-mal bearbeitet |
|
 |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
17:29:44 29.01.2012 Titel: |
|
Zitieren |
Also ich möchte einfach ein Programm womit ich die Prozesse
untereinander in einer Text datei speicher. |
_________________ no risk no fun!
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
18:13:59 29.01.2012 Titel: |
|
Zitieren |
| C/C++ Code: | | system("ps -aux > textdatei"); | |
| C/C++ Code: | | system("ps -aux > textdatei"); | |
| C/C++ Code: | | system("ps -aux > textdatei"); | |
|
|
|
|
 |
Ethon
Mitglied
Benutzerprofil
Anmeldungsdatum: 28.01.2011
Beiträge: 1114
|
Ethon Mitglied
12:48:32 30.01.2012 Titel: |
|
Zitieren |
|
 |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
10:14:41 31.01.2012 Titel: |
|
Zitieren |
Ich habs jetzt so gemacht !
| Code: | int ShowProzess()
{
ofstream fout("Prozesse.txt");
return system("ps -Al > Prozesse.txt");
}
| |
| Code: | int ShowProzess()
{
ofstream fout("Prozesse.txt");
return system("ps -Al > Prozesse.txt");
}
| |
| Code: | int ShowProzess()
{
ofstream fout("Prozesse.txt");
return system("ps -Al > Prozesse.txt");
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 | 1 2 3 4 5 6 7 8 9 10 | void ProzessWindow::OnClickButtonOK(wxCommandEvent &event ) {
string n;
ShowProzess();
ifstream fin("Prozesse.txt");
while(fin>>n && fin.ignore(1000))
{
wxString mystring(n.c_str(), wxConvUTF8);
textctrl->AppendText(mystring);
}
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 | void ProzessWindow::OnClickButtonOK(wxCommandEvent &event ) {
string n;
ShowProzess();
ifstream fin("Prozesse.txt");
while(fin>>n && fin.ignore(1000))
{
wxString mystring(n.c_str(), wxConvUTF8);
textctrl->AppendText(mystring);
}
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 | void ProzessWindow::OnClickButtonOK(wxCommandEvent &event ) {
string n;
ShowProzess();
ifstream fin("Prozesse.txt");
while(fin>>n && fin.ignore(1000))
{
wxString mystring(n.c_str(), wxConvUTF8);
textctrl->AppendText(mystring);
}
}
| |
Jetzt möchte ich das es die Prozesse im TextCrl untereinander anzeigt tut es aber nicht ..... Er zeigt nur eine Zeile an fertig.. |
_________________ no risk no fun!
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
12:57:51 31.01.2012 Titel: |
|
Zitieren |
Das ist doch nicht dein Ernst . Kannst du eine Scherzlösung nicht als solche erkennen?
Guck dir doch wenigstens mal die Grundlagen der Linux-"System"programmierung an. Wie man mit Verzeichnissen umgeht, etc. Oder eben Boost, wie es Ethon benutzt, das kommt in C++ schöner. Und lern auch ganz allgemein die Grundlagen von C++, denn wenn ich while(fin>>n && fin.ignore(1000)) sehe, dann weiß ich sofort, dass du hier total überfordert bist. Wenn ein Programm zu schwierig ist, dann ist es ja in Ordnung zu Fragen, aber man muss genügend Grundlagen können, um überhaupt die Antworten zu verstehen! Und diese Grundlagen zu lernen, dafür ist jeder selber verantwortlich, das kann das Forum nicht für jeden Neuling erledigen. Es ist ja nix schlimmes, nicht zu wissen, woher man Prozessinformationen bekommt, aber nach den Schlagworten in meiner ersten Antwort (Verzeichnis, Dateien, ...) hättest du eigentlich wissen müssen, was zu tun ist. |
Zuletzt bearbeitet von SeppJ am 12:58:23 31.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
14:50:12 31.01.2012 Titel: |
|
Zitieren |
Hmm Mir faellt nicht einw as ich der whileschleife sagen soll wie lange die sich
bewegen soll. -.- |
_________________ no risk no fun!
|
|
 |
Cybertec
Mitglied
Benutzerprofil
Anmeldungsdatum: 08.12.2008
Beiträge: 463
|
Cybertec Mitglied
15:19:57 31.01.2012 Titel: |
|
Zitieren |
Liest du überhaupt was andere dir schreiben/sagen? Anscheinend nicht.
Und bitte, schreibe mal richtig, deine Texte sind immer furchtbar zu lesen. |
|
|
|
 |
Cho++
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
|
Cho++ Mitglied
17:35:11 31.01.2012 Titel: |
|
Zitieren |
Natürlich lese ich was ihr mir schreibt.
Nur ich bin gerade dabei die Grundlagen zu lernen von
Linux "System" programmierung .Da man beim anwenden am besten lernen
kann dachte ich an so ein Programm.Wenn ihr meint das,dass nichts wird...
Was könnt ich den sonst so programmieren ich suche ein Project. |
_________________ no risk no fun!
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
19:39:45 31.01.2012 Titel: |
|
Zitieren |
Lös Fragen hier im Forum! Jeden Tag 3-4 neue Projekte, die sich schnell abschließen lassen. Und du kannst deine Ergebnisse direkt mit anderen vergleichen und falls dicke Hauer in deiner Lösung sind, bekommst du das auch mehr oder weniger unhöflich gesagt. |
|
|
|
 |