sysopen
ist ein dünner Wrapper um den Kernel-Systemaufruf open(2)
(die Argumente entsprechen direkt), während open
ein Wrapper auf höherer Ebene ist, mit dem Sie Umleitungen, Piping usw. durchführen können.
Sofern Sie nicht mit einem bestimmten Gerät arbeiten, für das einige spezielle Flags an open(2)
time übergeben werden müssen, sollten Sie für normale Dateien auf der Festplatte mit open
in Ordnung sein.
Um perlopentut zu zitieren:
Wenn Sie die Bequemlichkeit der Shell wollen, dann ist Perl's offen definitiv der Weg zu gehen. Auf der anderen Seite, wenn Sie feiner wollen Genauigkeit als C's simplistic fopen (3S) bietet, sollten Sie schauen Perls sysopen, das ein direkter Haken in den offenen (2) Systemaufruf ist. Das bedeutet, es ist ein bisschen mehr beteiligt, aber das ist der Preis von Präzision.
Da Perl in C geschrieben ist, führen beide Methoden wahrscheinlich zum open(2)
Systemaufruf. Der Unterschied ist, dass open()
in Perl einige Feinheiten eingebaut hat, die das Öffnen , Piping und Umleitung sehr ermöglichen einfach. Gleichzeitig nimmt open()
etwas Flexibilität weg. Es verfügt nicht über die Funktion Fcntl
, die in sysopen()
verfügbar ist, und auch nicht über die Maskierungsfunktion.
Die meisten Situationen benötigen nur open()
.
Tags und Links perl