[python] os.strerror​

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [python] os.strerror​

      Ich muss nochmal nachhaken ...


      Die Frage bezieht sich auf dieses Thema, wo man wohl absolut keine Diskussion zulassen will ...


      Ich versuche es daher hier in der Plugin-Balstelecke nochmal, da da es zumindest andere Bastler interessieren dürfte.

      Ist os.strerror

      1. Boxtypabhängig
      2. Boxmodellabhängig
      3. oder sollte es eigentlich keine Unterschiede geben.

      Ich hab nur ne Solo2 und ne solo4k, da haben die Fehler komplett unterschiedliche Nummern.
      Eventuell kann das ja jemand auf den anderen Boxen checken.

      Ich finde diese Frage schon von Interesse, weil Fall 1 und 2 ja bedeuten würde, daß Plugins, in denen Fehlercodes "fest verdrahtet" sind, an die Boxtypen angepasst werden müssten.
      Bei dem besagten SystemPlugin ist das aber nicht gemacht worden, daher ist auch Fall 3 denkbar, also das das so garnicht geplant war.


      Oder hab ich was übersehen - falsch verstanden ?
    • Deine Herangehensweise ist meiner Meinung nach falsch. os.errno wird von System-Aufrufen gesetzt, die Konstante wird in den Linux-Headerfiles definiert, und welche Nummer dahinter steckt, ist erst einmal völlig egal. Man vergleicht nicht gegen "159", sondern gegen den Errorcode ENOMEDIUM.

      Die Zuordnung von Fehlernummer zu Fehlercode kann von System zu System durchaus unterschiedlich sein. Und ist es zwischen Solo2 und Solo4k - das hat aber vermutlich mit den unterschiedlichen Prozessor-Architekturen und damit unterschiedlichen Linux-Kernel zu tun.

      Um die Diskussion abzuschließen: Fehlercodes wie errno.EAGAIN, errno.ENOMEM, errno.ENOMEDIUM benutzt du besser, die zugehörigen Fehlernummern tunlichst nicht!

      Quellcode

      1. import errno
      2. print errno.ENOMEM
      3. print errno.EAGAIN
      4. print errno.ENOMEDIUM
      5. print errno.errorcode
      Wobei bei mir ENOMEDIUM weder auf der Solo2 noch auf der Solo4k definiert sind.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • rdamas schrieb:



      Um die Diskussion abzuschließen: Fehlercodes wie errno.EAGAIN, errno.ENOMEM, errno.ENOMEDIUM benutzt du besser, die zugehörigen Fehlernummern tunlichst nicht!


      Gut ich benutze sie ja auch nicht aber einige historisch gewachsene Plugins möglicherweise eben schon.

      ENOMEDIUM = 159
      steht in der plugin.py auf meinen beiden Boxen - standardmäßig.
      Hab nicht ich so geschrieben.

      Die ganz praktische Frage ist jetzt:
      Wenn man das auf arm-Boxen: in ENOMEDIUM = 123 ... löst dies das konkrete Problem?
      Und wenn es das tut, betrifft es noch andere Plugins?

      So schnell würde ich das Thema nicht abhaken wollen ...
    • Lies mein Posting doch noch einmal genauer - so löst du dein Problem nicht. Im Plugin darf nichts "definiert" werden, die Fehlercodes und Fehlernummern sind schon vom System festgelegt. Im Plugin vergleichst du anschließend gegen errno.ENOMEDIUM, wenn du diesen spezifischen Fehler behandeln möchtest. Wenn du nur daran interessiert bist, eine Fehlermeldung auszugeben, dann kannst du os.strerror() mit der vom System-Aufruf zurückgegebenen Fehlernummer aufrufen. Nur so bist du auf allen Unix-Systemen kompatibel.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • Was heißt eigentlich mein Problem?

      Wenn es ein Fehler ist, dann betrifft es nicht nur meine oder die Box von Bueb sondern mindestens alle arm-Boxen.

      Die Frage ist bisher nur: ist es überhaupt ein Problem bzw. ist "ENOMEDIUM = 159" ein Fehler (bzw. führt eine solche Zeile letztendlich auf arm-boxen zu unerwüschten Zuständen der Box)?


      Deiner Meinung nach wäre also das Plugin fehlerhaft also nicht nur disfunktional auf arm-Boxen, sondern generell fehlerhaft?
      Wobei das wäre es ja dann deiner Meinung nach schon immer - ich glaube es ist unverändert seit 2011.
    • Ich spreche von deinem Problem, weil du es zum Thema machst und gefragt hast. Darauf habe ich geantwortet und alles gesagt, was ich zu sagen habe. Mich interessiert das Plugin und ob es möglicherweise Fehler enthält null komma gar nicht.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.