Freien Speicher ermitteln



  • Ich weiß, dass moderne Computersysteme mit ihrem virtuellen Speicher irgendwie immer noch was frei haben und das "insgesamt freier Speicher" >= "Allozierbarer Speicher" ist. Meine Frage ist eher grundsätzlicher Natur:

    Bietet ANSI-C eine Funktion an, mit welcher sich der noch verfügbare (physikalisch) freie Speicher ermitteln lässt? Da ANSI-C aus einer Zeit mit Systemen mit fixen Speichergrößen und ohne MMU kommt, wäre es ja prinzipiell möglich, das so eine Funktion existiert oder mal existiert hat?


  • Mod

    Nein.

    PS: Die Frage macht auch nicht so viel Sinn. Was genau hast du vor? Du stellst vermutlich die falsche Frage.



  • Häh?

    SeppJ schrieb:

    Du stellst vermutlich die falsche Frage.

    Ich möchte wissen, ob ANSI-C eine Funktion hat(te), mit der man den noch freien Speicher ermitteln kann (auf einem rudimentären System ohne MMU und Virtuellem Speicher). Wie sonst sollte ich die Frage deiner Meinung nach stellen?


  • Mod

    Maccc schrieb:

    Häh?

    SeppJ schrieb:

    Du stellst vermutlich die falsche Frage.

    Ich möchte wissen, ob ANSI-C eine Funktion hat(te), mit der man den noch freien Speicher ermitteln kann (auf einem rudimentären System ohne MMU und Virtuellem Speicher). Wie sonst sollte ich die Frage deiner Meinung nach stellen?

    Ich meinte: Diese Frage bringt dich vermutlich nicht der Lösung deines Problems näher. Ich habe viel Erfahrung mit Beiträgen dieser Art und meine, ein XY-Problem zu erkennen. Denn die Frage nach dem verfügbaren physikalischem Speicher ist eine, die ein Prozess sich eigentlich eher selten stellen sollte¹, daher ist anzunehmen, dass du irgendwie auf dem Holzweg bist. Falls dem nicht so ist und du wirklich nur exakt die Antwort auf die gestellte Frage suchst, hast du deine Antwort ("Nein.") und ich entschuldige mich für die Unannehmlichkeiten.

    ¹: Das einzige realistische Szenario, das mir einfiele, wäre irgendeine Art von Anzeige des freien physikalischen Speichers. Was dann aus den gleichen Gründen eine relativ nutzlose Anzeige wäre. Aber wird trotzdem gerne von diversen Systemmonitorprogrammen gemacht, weil es eine recht einfach zu verstehende Größe ist, die dem Nicht-technikaffinen Nutzer zumindest ein grobes Gefühl über den verfügbaren Arbeitsspeicher gibt.



  • Ja, ich will den physikalischen Speicher wissen (auf einem System ohne MMU gibt es schließlich nichts anderes). Das schrob ich ja auch so in meinem Posting...


  • Mod

    Das hab ich wohl verstanden 🙂 . Meine Behauptung war, dass du höchstwahrscheinlich nach der falschen Größe fragst, da man mit der Größe "freier physikalischer Speicher" nicht viel sinnvolles anfangen kann. Aber wenn du meinst, dass du das wirklich willst, dann sei es so. Die Antwort ist ja ohnehin, dass es keine plattformunabhängige Funktion dafür gibt.



  • Maccc schrieb:

    Ja, ich will den physikalischen Speicher wissen

    Die Frage ist warum du den wissen willst.
    Einfach nur so, zum Selbstzweck?



  • Ist das nicht völlig egal, warum er den wissen will?
    Entweder geht es, oder es geht nicht. Das ist doch nicht abhängig von der Motivation!

    Dafür, dass das die 'richtige Frage' ist, ist doch der Fragesteller erst mal selbst verantwortlich; solange sich nicht Anhaltspunkte dafür ergeben, dass das eigentliche Problem ein anderes ist - und die sind hier nicht zu erkennen - sollte man sich doch einfach mal auf die Frage, bzw. deren Beantwortung konzentrieren.



  • Belli schrieb:

    Ist das nicht völlig egal, warum er den wissen will?

    Wenn man einfach nur die Frage beantworten will, ja. Wenn man vernünftig helfen will, nein.

    Entweder geht es, oder es geht nicht. Das ist doch nicht abhängig von der Motivation!

    Die Frage ist doch schon längst beantwortet.



  • @Belli
    Wie SeppJ schon geschrieben hat riecht die Frage nach XY-Problem.

    Der OP hat das aber anscheinend nichtmal zur Kenntniss genommen, obwohl SeppJ extra ne Seite verlinkt hat wo das XY-Problem beschrieben wird. Sonst hätte er entweder die Frage von SeppJ beantwortet, oder geschrieben dass er sie nicht beantworten will. Anstatt die "Unantwort" zu geben die er eben gegeben hat.

    Und ich habe mir erlaubt zu versuchen zu erklären was SeppJ eigentlich wissen wollte. K.A. wieso das nun wieder in Frage gestellt werden muss.



  • hustbaer schrieb:

    Und ich habe mir erlaubt zu versuchen zu erklären was SeppJ eigentlich wissen wollte. K.A. wieso das nun wieder in Frage gestellt werden muss.

    Deshalb:

    hustbaer schrieb:

    Der OP hat das aber anscheinend nichtmal zur Kenntniss genommen, obwohl SeppJ extra ne Seite verlinkt hat wo das XY-Problem beschrieben wird.

    Irgendwann muss es doch mal gut sein ...
    just my 2 Cents

    Ich meine, Du kannst die Frage noch fünf Mal in unterschiedlicher Form stellen, wie hoch schätzt Du die Wahrscheinlichkeit ein, dass Du dann mal eine andere Antwort bekommst, nachdem das schon bisher nicht geschehen ist?

    Es gibt eben die Unbelehrbaren (ja, echt, ich hab auch lange gebraucht, um das einzusehen), aber eben auch die, die einfach nur ne Frage stellen, die akademischer Natur, ohne konkreten Zusammenhang mit einem Problem, von Interesse (für den Fragesteller) ist.

    Aber egal, wir müssen das jetzt nicht weiter diskutieren.



  • hustbaer schrieb:

    Der OP hat das aber anscheinend nichtmal zur Kenntniss genommen, obwohl SeppJ extra ne Seite verlinkt hat wo das XY-Problem beschrieben wird.

    Doch, ich habe das zur Kenntnis genommen. Ich wollte nur höflich sein und auf diese sinnlose Klugscheißerei nicht eingehen.

    Um mal Klartext zu reden: es gibt Foren, die sind nahezu unbenutzbar, weil die Forenmitglieder auf genau diesem bekloppten XY-Problem-Trip sind. In diesen Foren ist es egal, welche Frage man stellt, man bekommt immer irgend was anderes beantwortet.

    Woher das kommt, weiß ich nicht. Möglicherweise ist das einfach nur eine Art von Größenwahn, in der davon ausgegangen wird, das andere immer irgend was falsch machen und generell keine Ahnung haben. Dafür gibt es für einen Fragestellenden noch ganz andere Gründe, zu einem Problem "X" tatsächlich eine Frage "Y" zu stellen:

    * das Problem ist zu komplex um es in einem Forum zu erläutern
    * das Problem erfordert Spezialwissen, welches in einem Forum nicht vorhanden ist
    * das Problem ist irgend welches vertrauliches wissen ,welches nicht öffentlich erörtert werden kann
    * der Fragesteller hat tatsächlich Ahnung von dem, was er da tut, alle anderen Optionen schon durchprobiert und will tatsächlich nur "Y" beantwortet haben

    Und in solchen Fällen ist es mehr als lästig, dann ellenlange Sinnlosdiskussionen zu führen.

    Und wer es jetzt immer noch nicht gecheckt hat, der soll sich nur mal in diesem Thread das Verhältnis zwischen meiner Frage, der Antwort "nein" und dem restlichen, völlig unnützen Klugschissrauschen ansehen.


  • Mod

    Maccc schrieb:

    Woher das kommt, weiß ich nicht. Möglicherweise ist das einfach nur eine Art von Größenwahn, in der davon ausgegangen wird, das andere immer irgend was falsch machen und generell keine Ahnung haben. Dafür gibt es für einen Fragestellenden noch ganz andere Gründe, zu einem Problem "X" tatsächlich eine Frage "Y" zu stellen:

    Nein, es kommt aus Erfahrung. Man erkennt solche Probleme nach einer Weile. Eindeutigstes Anzeichen ist, wenn nach einer Information gefragt wird, die scheinbar nützlich klingt, aber in der Praxis nutzlos ist. Freier physischer Speicher ist ein ganz typisches Beispiel, von dem sehr viele Anfänger glauben, es wäre irgendwie nützlich für solche Zwecke wie beispielsweise das Herausfinden, ob ein malloc klappen wird oder nicht. Ist es aber nicht. Daher erwartet ein jeder hier im Thread bloß deine Folgefrage, die wahrscheinlich irgendetwas in der Art lauten wird wie

    Future Macc schrieb:

    Wie kann ich rausfinden, wie viel ich noch malloc'en kann? Ich habe es mit dem freien physischen Speicher versucht, aber das hat aus unerfindlichen Gründen nicht funktioniert...

    Und die Motivation, wieso man dich hier nach deinem wahren Problem gefragt hat, war, dass man dir eben besser helfen wollte. Da man ja schon wusste, dass du höchstwahrscheinlich ein ganz anderes Problem hast und du gerade dabei bist, dich kräftig zu verlaufen. Man wollte dir diese Frustration ersparen. Natürlich ist nun die Motivation, dir in irgendeiner Weise noch jemals zu helfen, ungefähr bei Null. Stattdessen wirst du bloß noch gehässige Antworten wie diese hier bekommen.



  • Die zeitliche Nähe ist verblüffend.
    https://www.mikrocontroller.net/topic/397333



  • @Maccc
    Ich weiss was du meinst. Ich bin allerdings anderer Meinung. Ich stelle ja selbst manchmal Fragen in Foren, und da ich mich eigentlich recht gut auskenne, und die meisten Dinge ohne zu fragen gebacken bekomme, sind das dann oft Fragen die etwas spezieller sind. Und oft welche wo man ohne weitere Erklärung ein XY-Problem vermuten könnte. Ich schaffe es aber trotzdem meistens das von dir angesprochene Problem zu vermeiden.
    Einerseits dadurch dass ich oft nochmal nachdenke befor ich meine Y Frage stelle ob da nicht ein X ist was ich eigentlich fragen sollte (oder zumindest erwähnen).

    Und andrerseits weil man die Dinge die du angeführt hast,

    Maccc schrieb:

    * das Problem ist zu komplex um es in einem Forum zu erläutern
    * das Problem erfordert Spezialwissen, welches in einem Forum nicht vorhanden ist
    * das Problem ist irgend welches vertrauliches wissen ,welches nicht öffentlich erörtert werden kann
    * der Fragesteller hat tatsächlich Ahnung von dem, was er da tut, alle anderen Optionen schon durchprobiert und will tatsächlich nur "Y" beantwortet haben

    ganz einfach mit einem Satz klarstellen kann. (Hast du ja gerade demonstriert, die vier Punkte oben sind ja nicht gerade lange.)

    Mal abgesehen vom letzten Punkt, denn der ist einfach unvernünftig. Egal wie gut man sich auskennt, man kann nie ausschliessen dass man etwas nicht weiss. In so einem Fall beschreibt man halt sein X zusätzlich kurz, mit dem Hinweis dass, falls es eine bessere Lösung dafür gibt, man an der genau so interessiert wäre.
    (Bzw. wenn man nicht an anderen Lösungen interessiert ist, dann muss es einen Grund neben "ich kenne mich eh aus" geben. Dieser Grund kann einer der anderen Punkte auf deiner Liste sein, aber auch "ich bin einfach stur". Wobei letzteres aus gutem Grund meist wenig Resonanz erzeugen wird.)

    Kurz...

    Maccc schrieb:

    Um mal Klartext zu reden: es gibt Foren, die sind nahezu unbenutzbar, weil die Forenmitglieder auf genau diesem bekloppten XY-Problem-Trip sind. In diesen Foren ist es egal, welche Frage man stellt, man bekommt immer irgend was anderes beantwortet.

    Nein. Das liegt an dir. Vermutlich weil du dich irgendwo ein wenig überschätzt. Entweder überschätzt du deine fachliche Kompetenz, oder deine Fähigkeit Dinge klar zu kommunizieren. Oder beides.

    Und ganz egal ob der von DirkB gefundene Thread hier
    https://www.mikrocontroller.net/topic/397333
    jetzt wirklich von dir ist, oder es reiner Zufall ist ... ist er ein gutes Beispiel dafür wie man es besser macht. Am besten gleich von Anfang an, und wenn man halt mal vergessen hat/zu faul war es gleich ordentlich zu beschreiben, dann halt auf Nachfrage.



  • hustbaer schrieb:

    ...

    Essenz also tatsächlich:
    einfach mal eine Frage stellen, is nich ...
    Ich sehe das ein bisschen anders:
    Ich beantworte einfach die gestellte Frage, wenn ich denn kann.
    Wenn das dem Fragesteller am Ende nicht reicht, wird er das schon merken.
    Wer bin ich denn, dass ich jedem erst mal unterstellen soll, dass er zu blöd ist, die richtige Frage zu stellen?


  • Mod

    Belli schrieb:

    Wer bin ich denn, dass ich jedem erst mal unterstellen soll, dass er zu blöd ist, die richtige Frage zu stellen?

    Halt! Es wird nicht jedem unterstellt, sondern Leuten, die eine anscheinend sinnlose Frage stellen. Denen kann man nämlich erfahrungsgemäß wesentlich besser helfen, wenn man ihnen das eigentliche Problem aus der Nase zieht. Und entgegen anders lautender Gerüchte sind hustbaer und ich durchaus daran interessiert, Leuten möglichst gut zu helfen. Die mathematisch korrekte Beantwortung von Fragen ist selten die hilfreichste Antwort. Der Antwortende sollte möglichst mitdenken.

    Die Frage hier im Thread ist geradezu ein Musterbeispiel, wo ein erfahrener Programmierer durch Mitdenken eine hilfreichere Antwort geben kann. Die Funktion, nach der hier gefragt wurde, hat keinen praktischen Nutzen, klingt aber für den Anfänger verführerisch als vermeintliche Lösung vieler Probleme. Es ist daher anzunehmen, dass der Fragesteller etwas damit vor hat, das nicht funktionieren wird. Daher ist es angebracht, ihm das möglichst gleich zu sagen und herauszufinden, welche Funktion er wirklich sucht.



  • Belli schrieb:

    Wer bin ich denn, dass ich jedem erst mal unterstellen soll, dass er zu blöd ist, die richtige Frage zu stellen?

    "Blöd" ist eine Unterstellung. Bzw. deine Interpretation. Fast jeder stolpert zu Anfang über das XY Problem. Auch sehr intelligente und fähige Leute. Das hat erstmal nix mit blöd zu tun.
    Und dann, nachdem man mal darauf hingewiesen wurde, ist es hauptsächlich Charaktersache. Wie man hier schön sieht. Wenn man zu stur ist einzusehen dass man was falsch macht, kann man natürlich nix ändern. Ob der OP aber noch nie auf das XY Problem hingewiesen wurde, oder er einfach zu stur ist es einzusehen, das kann man anhand der Frage meist nicht beurteilen. Daher ist es, wenn eine Frage verdächtig nach XY riecht, mMn. auch gut darauf hinzuweisen. Gibt genügend Fälle wo der OP es versteht und froh über den Hinweis ist.

    Wenn eine Frage zwar vermutlich sinnlos, aber leicht zu beantworten ist, dann schreibe ich meist die Antwort. Erkläre kurz warum die Antwort vermutlich nix bringen wird, und weise dann auf das XY Problem hin.

    In diesem Thread war die Antwort ja schon da, also hab ich mir das gespart.
    Tip: Die Antwort ist im 1. Wort der 1. Antwort in diesem Thread!

    Also was ist jetzt das Problem? Dass es SeppJ gewagt hat zusätzlich dazu die wörtliche Frage zu beantworten noch versucht hat dem OP besser zu helfen? Oh, ja, wirklich furchtbar.



  • Belli schrieb:

    hustbaer schrieb:

    ...

    Essenz also tatsächlich:
    einfach mal eine Frage stellen, is nich ...
    Ich sehe das ein bisschen anders:
    Ich beantworte einfach die gestellte Frage, wenn ich denn kann.
    Wenn das dem Fragesteller am Ende nicht reicht, wird er das schon merken.
    Wer bin ich denn, dass ich jedem erst mal unterstellen soll, dass er zu blöd ist, die richtige Frage zu stellen?

    Hey, da es ein Forum ist, ich aber wie ihr mitbekommen habt in Sachen Programmierung gerade den Urschleim durchgehe, muss ich mich von einer rein logischen Perspektive hier anschließen.

    Wenn eine Frage gestellt wird, sollte man die Frage beantworten, und nicht eine vermutete Frage. Sollte das nicht auch die Einstellung zum Programmieren sein, das Programm was gefordert und nicht das was vermutlich erwartet wird zu programmieren?

    Ich hatte letztens auch ein Thread aufgemacht indem ich ein Problem mit meinem Ansatz ein Programm zu schreiben schilderte und hoffentlich etwas Aufklärung über das von mir umschriebene Problem zu erhalten (ich war bemüht ausführlich und eindeutig auf meinen Denkansatz zu zeigen).

    Die Antwort war in etwa "kein Wunder bei VLA". Damit konnte ich überhaupt nichts anfangen und es hat auch in keinster Weise meine Frage beantwortet. Die Nutzung eines Forums kann nur Ergebnisse hervor tragen, wenn das Geschriebene so verstanden wird wie es geschrieben steht (sofern es verständlich aufbereitet ist) und wenigstens zunächst dieses zu beantworten (wenn möglich sogar mit einer Begründung oder Quellenverweisen, was sogar noch eine gute wissenschaftliche Note hinterlassen würde).

    Wie auch immer, zu dem Ursprungsthema kann ich leider nichts Beitragen, aber ich wollte diese Grundsatzdiskussion hier auch nicht unkommentiert lassen.


  • Mod

    C_Newbe schrieb:

    Sollte das nicht auch die Einstellung zum Programmieren sein, das Programm was gefordert und nicht das was vermutlich erwartet wird zu programmieren?

    Nein? Ebenso in allen anderen Bereichen des Lebens? Beziehungsweise ja, wenn du als der komische Typ gelten möchtest, mit dem zusammen man nichts produktives unternehmen kann, weil er immer alles wortwörtlich nimmt.

    Ich hatte letztens auch ein Thread aufgemacht indem ich ein Problem mit meinem Ansatz ein Programm zu schreiben schilderte und hoffentlich etwas Aufklärung über das von mir umschriebene Problem zu erhalten (ich war bemüht ausführlich und eindeutig auf meinen Denkansatz zu zeigen).

    Die Antwort war in etwa "kein Wunder bei VLA". Damit konnte ich überhaupt nichts anfangen und es hat auch in keinster Weise meine Frage beantwortet.

    Hat dir volkards ausführliche Hilfestellung nicht gefallen? Die hätte er niemals geben können, wenn du dein Problem nicht so beschrieben hättest, wie du es hast. Wutz hat hingegen exakt die Antwort gegeben, die nur die Frage beantwortete und nicht wirklich weiter half.

    PS: Der Thread, der gemeint ist:
    https://www.c-plusplus.net/forum/337925


Log in to reply