Auf Fedora Core 7 schreibe ich Code, der auf ARG_MAX
basiert. Aber auch wenn ich #include <limits.h>
bin, ist die Konstante noch nicht definiert. Meine Untersuchungen zeigen, dass es in <sys/linux/limits.h>
vorhanden ist, aber das soll über Win32/Mac/Linux portierbar sein, so dass es direkt einschließlich es keine Option ist. Was ist denn hier los?Warum ist ARG_MAX nicht über limits.h definiert?
Antwort
Der Grund, warum es nicht in Grenzen ist. H ist, dass es keine Menge ist, die die Grenzen des Wertebereichs eines ganzzahligen Typs auf der Basis der Bitbreite der aktuellen Architektur angibt. Das ist die Rolle, die limits.h dem ISO-Standard zuweist.
Der Wert, an dem Sie interessiert sind, ist in der Praxis nicht hardwaregestützt und kann von Plattform zu Plattform und vielleicht von System zu Systemaufbau variieren.
Das richtige Verfahren ist es, sysconf
anzurufen und nach "ARG_MAX" oder "_POSIX_ARG_MAX" zu fragen. I denke, das ist die POSIX-konforme Lösung sowieso.
Acc. In meiner Dokumentation enthalten Sie entweder unistd.h oder limits.h basierend auf den von Ihnen gewünschten Werten.
Ein weiterer Punkt: viele Implementierungen der exec-Familie von Funktionen geben E2BIG oder einen ähnlichen Wert zurück, wenn Sie versuchen, sie mit einer übergroßen Umgebung aufzurufen. Dies ist eine der definierten Bedingungen, unter denen exec tatsächlich zurückkehren kann.
ARG_MAX ist in /usr/include/linux/limits.h definiert. Meine Linux Kernel Version ist 3.2.0-38.
- 1. Warum Observer nicht definiert ist
- 2. Warum ist ReactRedux nicht definiert?
- 3. Warum ist JSONObject.length nicht definiert?
- 4. Sass: Warum ist diese Variable nicht definiert?
- 5. Warum ist mySet.Erase (it ++) nicht definiert, oder?
- 6. Warum ist rsize_t definiert?
- 7. Warum ist this.parent() nicht als Funktion definiert?
- 8. Warum ist die Variable nicht definiert?
- 9. Warum ist event.namespace für Klickereignis nicht definiert?
- 10. Warum ist: fs.start_link/2 nicht definiert?
- 11. Warum ist em nicht so definiert verhalten
- 12. Warum ist das Meteor-Vorlagenobjekt nicht definiert?
- 13. Warum ist diese Erlang-Funktion nicht definiert?
- 14. Warum ist das PageMethods-Objekt nicht definiert?
- 15. Warum ist die Funktion nicht definiert?
- 16. Service ist nicht definiert?
- 17. sqlconnection ist nicht definiert
- 18. GCC Build-Problem (#include_next limits.h)
- 19. ObservableArray ist nicht definiert
- 20. Warum ist dieser Fehler "Uncaught ReferenceError: tempo ist nicht definiert"?
- 21. Rx.Observable.prototype.skip ist nicht definiert
- 22. Firebase ist nicht definiert?
- 23. servletcontext.addservlet ist nicht definiert
- 24. Warum sind Objektantworten nicht definiert?
- 25. C# Warum ist die Größe von (konstant) nicht definiert
- 26. Warum definiert unary_function nicht operator()?
- 27. ReferenceError: WebSocket ist nicht definiert
- 28. SP ist nicht definiert
- 29. getSupportFragmentManager() ist nicht definiert
- 30. ReactDom ist nicht definiert