module Fcntl

Fcntl lädt die Konstanten, die in der C-Headerdatei <fcntl.h> des Systems definiert sind und sowohl für die POSIX-Systemaufrufe fcntl(2) als auch open(2) verwendet werden.

Um eine fcntl(2)-Operation durchzuführen, verwenden Sie IO::fcntl.

Um eine open(2)-Operation durchzuführen, verwenden Sie IO::sysopen.

Der Satz von verfügbaren Operationen und Konstanten hängt vom spezifischen Betriebssystem ab. Einige der unten aufgeführten Werte werden auf Ihrem System möglicherweise nicht unterstützt.

Siehe Ihre fcntl(2)-Manpage für vollständige Details.

Öffnen Sie /tmp/tempfile als schreibgeschützte Datei, die erstellt wird, wenn sie nicht existiert

require 'fcntl'

fd = IO.sysopen('/tmp/tempfile',
                Fcntl::O_WRONLY | Fcntl::O_EXCL | Fcntl::O_CREAT)
f = IO.open(fd)
f.syswrite("TEMP DATA")
f.close

Rufen Sie die Flags für die Datei s ab

m = s.fcntl(Fcntl::F_GETFL, 0)

Setzen Sie das Nicht-Blockierungs-Flag für f zusätzlich zu den vorhandenen Flags in m.

f.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK|m)