Anfänger ?



  • @biter @RBS2
    für mich klingt euer Programmierstil so ein bisschen nach:

    "Ich hab keine Ahnung ob mein Prozess noch irgendwelche Filehandles hat und wo die sind und überhaupt, also nehm ich die große Dampframme und lasse einfach das Betriebssystem die Scheiße aufräumen, die ich durch meine Sturheit und Beratungsresistenz verzapft habe"


  • Gesperrt

    @Jockelx sagte in Anfänger ?:

    @RBS2 Blödes Argument!
    In dem fcloseall-Fall kann ich das nicht beurteilen, aber generell kann man sich so natürlich jeden noch so schlechten Code schön reden.

    Schlecher Code ist für mich zum Beispiel, alle FILE* in einer Schleife zu schließen, anstatt ein Mal fcloseall() aufzurufen.


  • Gesperrt

    @It0101 sagte in Anfänger ?:

    Ich hab keine Ahnung ob mein Prozess noch irgendwelche Filehandles hat und wo die sind und überhaupt, also nehm ich die große Dampframme und lasse einfach das Betriebssystem die Scheiße aufräumen, ...

    Das ist ja das Tolle, wenn man ein OS hat, das sowas kann. 🐱



  • @RBS2 sagte in Anfänger ?:

    @It0101 sagte in Anfänger ?:

    Ich hab keine Ahnung ob mein Prozess noch irgendwelche Filehandles hat und wo die sind und überhaupt, also nehm ich die große Dampframme und lasse einfach das Betriebssystem die Scheiße aufräumen, ...

    Das ist ja das Tolle, wenn man ein OS hat, das sowas kann. 🐱

    Früher oder später geht das schief. Dann baust du noch ein zusätzliches Modul, welches auch ein Filehandle unterhält, denkst aber nicht mehr an deine Dampframme und killst auch noch das Filehandle in dem neuen Modul. Und dann brennt der gbd und deine Birne gleich mit.

    Aber wie gesagt: wenn ihr scheiße bauen wollt, dann kann euch niemand aufhalten, aber heult dann nicht rum, wenn in eurem Datensatz das Anfänger-Bit gesetzt ist.


  • Gesperrt

    @It0101 sagte in Anfänger ?:

    Aber wie gesagt: wenn ihr scheiße bauen wollt, dann kann euch niemand aufhalten

    Das will keiner. Ich sehe bei fcloseall() nur das Problem, dass es global auf den ganzen Prozess wirkt. Wie du schon sagtest, ist fcloseall() nicht so gut, wenn irgendwelche Komponenten noch FILE* haben, von denen man nichts weiß. Aber z.B. in einem Programm, das quasi-simultan (per kooperatives Multitasking) viele Dateien beschreibt, kannst du mit einem einzigen Funktionsaufruf alle Schreib-Buffer flushen und die Dateien schließen. Sehr praktisch, vor allem wenn die Anzahl der Dateien variabel ist.



  • @RBS2
    Klar. Und wenn du in der Küche das Licht ausmachen willst, dann gehst du auch zum FI im Sicherungskasten und reißt den raus.


  • Gesperrt

    @It0101 sagte in Anfänger ?:

    Klar. Und wenn du in der Küche das Licht ausmachen willst, dann gehst du auch zum FI im Sicherungskasten und reißt den raus.

    Ein sehr unpassender vergleich, aber auch das mag manchmal die beste Lösung sein. Zum Beispiel wenn man den Wohnungsschlüssel verloren hat, eine Pizza im Ofen bruzzelt und der Sicherungskasten im Hausflur ist, wo man sich gerade befindet. 🐱



  • das würde aber gar nicht funktionieren, weil der ofen gar nicht über den fi abgesichert wird.


  • Gesperrt

    @Wade1234 sagte in Anfänger ?:

    das würde aber gar nicht funktionieren, weil der ofen gar nicht über den fi abgesichert wird.

    Dann nimmste den Hauptschalter daneben.



  • aber dann taut der gefrierschrank ab



  • @Wade1234 sagte in Anfänger ?:

    mal sehen, wie lange es dauert, bis das hier alles an den _fcloseall-thread angehängt wird.

    5 stunden? wow! 🤣



  • @biter sagte in Anfänger ?:

    Es geht momentan nur darum, ob man _fcloseall() verwenden soll oder nicht.

    Alle Bezeichner mit einem oder zwei "_" sind proprietäre Internas des Compilers, und man sollte sie in der Regel gar nicht nutzen. Ausnahmen bestätigen auch hier die Regel. Mir erscheint das so zu sein, dass hier eine interne Schnittstelle der Laufzeitumgebung genutzt wird. Das ist zwar technisch möglich, aber nicht unbedingt die sauberste Art und Weise vorzugehen. Wenn man auf C Niveau Error Handling macht – sprich exit(EXIT_ERROR) aufruft, dann mag so etwas normal erscheinen.



  • Interessant, dass die beiden Threads mittlerweile sehr weit oben bei Google auftauchen (zumindest bei mir), wenn man fcloseall bzw. _fcloseall sucht.
    Die Diskussion an sich ist aber völlig sinnlos...



  • @john-0 sagte in Anfänger ?:

    Alle Bezeichner mit einem oder zwei "_" sind proprietäre Internas des Compilers, und man sollte sie in der Regel gar nicht nutzen. Ausnahmen bestätigen auch hier die Regel. Mir erscheint das so zu sein, dass hier eine interne Schnittstelle der Laufzeitumgebung genutzt wird. Das ist zwar technisch möglich, aber nicht unbedingt die sauberste Art und Weise vorzugehen.

    Die Funktionen der ms-crt wurden umbenannt um nicht mit POSIX-Funktionen zu kollidieren, die zwar meist ein ähnliches, aber doch hin und wieder ein für POSIX-Gewöhnte überraschendes Verhalten haben. Es spricht nichts dagegen diese Funktionen (die, deren Verwendung nicht per se total Banane ist) zu verwenden wenn es nicht auf Platformunabhängigkeit ankommt. Ob die jetzt mit _ beginnen oder nicht. Mit _-Prefix ist eben sichergestellt, daß sie nicht mit anderen Bezeichnern kollidieren.

    @Mechanics sagte in Anfänger ?:

    Interessant, dass die beiden Threads mittlerweile sehr weit oben bei Google auftauchen (zumindest bei mir), wenn man fcloseall bzw. _fcloseall sucht.
    Die Diskussion an sich ist aber völlig sinnlos...

    Ka*** schwimmt doch immer oben? ^^



  • @Mechanics sagte in Anfänger ?:

    Interessant, dass die beiden Threads mittlerweile sehr weit oben bei Google auftauchen (zumindest bei mir), wenn man fcloseall bzw. _fcloseall sucht.
    Die Diskussion an sich ist aber völlig sinnlos...

    Lässt vermuten, dass sonst niemand wirklich über diese Befehle redet....



  • normalerweise benutzt sie ja auch keiner, wozu auch?



  • was ich mich grad so frage: warum gibt es eigentlich keine funktion _fopenall()? das wäre doch bestimmt total bequem, alle dateien auf einmal öffnen zu können.😀



  • @Wade1234 sagte in Anfänger ?:

    was ich mich grad so frage: warum gibt es eigentlich keine funktion _fopenall()? das wäre doch bestimmt total bequem, alle dateien auf einmal öffnen zu können.😀

    Stimmt. Man gibt ein Verzeichnis an und dann fängt die Party an. Was ist nochmal die maximale Anzahl an möglichen Handles? Ist das noch 1024? 😀



  • @It0101 sagte in Anfänger ?:

    Was ist nochmal die maximale Anzahl an möglichen Handles? Ist das noch 1024?

    Europäische oder afrikanische Handles?



  • das ist ganz schön wenig, oder? also meine zweite festplatte hat mindestens 150000 dateien (ich habs dann abgebrochen). wenn ich die jetzt alle mit 1 und 0 überschreiben möchte, kann ich ja gleich fopen nehmen.🙁


Anmelden zum Antworten