Wie der Titel schon sagt - kann ich ziemlich sicher sein, dass mktemp
auf jedem Unix-y-Betriebssystem, auf das ich wahrscheinlich stoße, existieren wird?Wie tragbar ist mktemp (1)?
Antwort
POSIX scheint nicht zu spezifizieren mktemp (1).
Es sieht aus wie die meisten modernen Systeme es, aber die verfügbare Funktionalität und die Semantik der Optionen variieren zwischen Implementierungen (so insbesondere Anrufungen nicht tragbar sein):
- mktemp(1) from OpenBSD - mktemp (1) 2,1
- mktemp(1) from FreeBSD
- mktemp(1) from Mac OS X in OpenBSD entstand - fast immer die gleiche wie von FreeBSD
- mktemp(1) from Todd C. Miller von sudo Ruhm
- mktemp(1) from Solaris
- mktemp(1) from GNU coreutils
- mktemp(1) from HP/UX - dieser scheint besonders abweichend von den meisten anderen hier aufgeführten
Also, wenn Sie eine tragbare Lösung möchten Sie müssen möglicherweise Funktionalität halten und Optionen, die auf all Ihren Plattformen von Interesse sind.
A mktemp
Funktion (AKA mktemp(3)
) erschien zuerst in Unix V7 so überall sein, es ist wahrscheinlich. Jedoch ist ein mktemp
Befehl (aka mktemp(1)
) zum ersten Mal erschien, glaube ich, auf OpenBSD 2.1, wenn Sie also mit wirklich vorsintflutlichen Unix-Systemen zu tun haben Sie Macht kümmern - es sei denn, Sie sehr tragbare mktemp.org Version verteilen (um das mögliche Fehlen dieses Dienstprogramms auf dem antediluvianischen System eines Kunden zu beheben). Wie wahrscheinlich Sie auf antediluvian System sind, ist fast unmöglich für uns zu erraten, natürlich - zB in HP-UX
, mktemp(1)
ist schon seit mindestens 8 Jahren (sogar die meisten Unternehmen haben wahrscheinlich ihre Unix-OS innerhalb dieses Zeitrahmens aktualisiert), in Xenix ich glaube, es erschien in 3.0 (in 1992), etc, etc.
So die kurze Zusammenfassung ist: ja, können Sie sich verlassen maßen auf mktemp sein um – mpez0
FYI, mktemp erscheint NICHT mit Solaris 9 (veröffentlicht 2002/2003) aufgenommen werden - nur über diese heute lief:
$ uname -a SunOS dcmnapp02 5.9 Generic_122300-47 sun4u sparc SUNW,Sun-Fire-V440 $ mktemp bash: mktemp: command not found $ man mktemp bash-2.05$ man mktemp Reformatting page. Please Wait... done Standard C Library Functions mktemp(3C) NAME mktemp - make a unique file name SYNOPSIS #include char *mktemp(char *template);
Ja, Solaris 10 war die erste Solaris-Version, die den Befehl mktemp (1) im Betriebssystem enthielt. – alanc
Unter Solaris 9 in Paket SMCmktemp ist, siehe http://sunfreeware.com/indexsparc9.html:
uname -s
SunOS
uname -r
5.9
/usr/sbin/pkgchk -l -p/usr/local/bin/mktemp
Pathname:/usr/local/bin/mktemp
Typ: reguläre Datei
erwarteter Mode: 0555
Erwartete Besitzer:
bin Erwartete Gruppe: ist
Erwartete Dateigröße (Byte): 8884
erwartende Summe (1) des Inhalts: 6493
Erwartete letzte Änderung: 05 Nov 2002 08.48.17
durch die folgenden Pakete Referenced:
SMCmktemp
Aktueller Status: installiert
Die Verbindung ist unterbrochen. –
- 1. Wie tragbar ist GLib?
- 2. Warum ist Getch nicht tragbar?
- 3. Ist FILE * gleich stout tragbar?
- 4. Wie Tomcat tragbar machen?
- 5. Sind Packetdrill-Tests tragbar?
- 6. ist es tragbar zu behandeln std :: Vektor wie Array
- 7. Suppress Warnung: die Verwendung von `mktemp‘ ist gefährlich
- 8. Wie tragbar ist die Wiedereintrittsfunktion qsort_r im Vergleich zu qsort?
- 9. ist mknod tragbar? Wenn nicht, was ist die Alternative?
- 10. mktemp: ungültige Option - - auf RHEL5 U3
- 11. Wie macht man eine Rails App "tragbar"?
- 12. Wie mache ich meine Skripte tragbar vbs
- 13. Wie tragbar sind Erlang Beam-Dateien?
- 14. Apache, PHP und MySQL tragbar?
- 15. Ist die <random>-Bibliothek in C++ 11 tragbar?
- 16. Wie übertragen Sie SQLite DB vom Handheld auf tragbar?
- 17. Warum ist (numpy.nan, 1) == (numpy.nan, 1)?
- 18. Irgendwie 1 ist nicht gleich 1 (PHP)
- 19. Warum ist 1/1/1970 die "Epoche"?
- 20. Warum ist ~ 0 -1?
- 21. Erkennen, wenn verbunden/verbunden mit/von Android-Telefon tragbar
- 22. hitTest.RowIndex ist immer -1
- 23. MotionEvent.getPointerCount() ist immer 1
- 24. Wie ist 1 größer als 4?
- 25. Wie berechnet diese Methode Rational (1) .hashCode()? Der Zähler oder Nenner von 1 ist 1 selbst.
- 26. Warum ist 1 +++ 2 = 3?
- 27. Ist Bool garantiert 1 Byte?
- 28. Warum $ 1 Ausgabe ist nichts?
- 29. Java-Fehler ist: java.lang.ArrayIndexOutOfBoundsException: 1
- 30. MIDIPacketList, numPackets ist immer 1
Es verwendet maßen tragbar und von POSIX definiert sein, aber es scheint, dass darin einige Schwächen, indem angesprochen wurden eine neue Funktion 'mkstemp()'. "4.3BSD, POSIX.1-2001. POSIX.1-2008 entfernt die Spezifikation von mktemp()." http://man7.org/linux/man-pages/man3/mktemp.3.html Der neuere Ersatz ist http://man7.org/linux/man-pages/man3/mkstemp.3.html – TafT
'mktemp' @TafT adressiert die C-Bibliotheksfunktion, während das' mktemp'-OP nach dem Befehlszeilenprogramm gefragt wird. – onlynone
@onlynone ist eines der Dinge nicht oft ein sehr dünnes Furnier rund um das andere? – TafT