Fcntl - 載入 C Fcntl.h 定義
use Fcntl;
use Fcntl qw(:DEFAULT :flock);
這個模組只是 C fcntl.h 檔案的轉譯。不像舊的機制需要轉譯的 fcntl.ph 檔案,這個使用 h2xs 程式(請參閱 Perl 原始碼散佈)和你的原生 C 編譯器。這表示它有更大的機會取得正確的數字。
只有 #define
符號會轉譯;你仍然必須正確地封裝自己的參數,才能傳遞給鎖定函式等作為參數。
預設情況下,系統的 F_* 和 O_* 常數(例如 F_DUPFD 和 O_CREAT)以及 FD_CLOEXEC 常數會匯出到你的命名空間中。
你可以使用標籤 :flock
要求提供 flock() 常數(LOCK_SH、LOCK_EX、LOCK_NB 和 LOCK_UN)。請參閱 Exporter。
你可以使用標籤 :Fcompat
要求提供舊常數(FAPPEND、FASYNC、FCREAT、FDEFER、FEXCL、FNDELAY、FNONBLOCK、FSYNC、FTRUNC),以符合相容性。對於新的應用程式,建議使用這些常數的新版本(O_APPEND、O_ASYNC、O_CREAT、O_DEFER、O_EXCL、O_NDELAY、O_NONBLOCK、O_SYNC、O_TRUNC)。
為了方便使用,SEEK_* 常數(用於 seek() 和 sysseek(),例如 SEEK_END)和 S_I* 常數(用於 chmod() 和 stat())也可以匯入。它們可以單獨匯入,或使用標籤 :seek
和 :mode
匯入。
請參閱您本機的 fcntl(2)、open(2)、fseek(3)、lseek(2)(分別等於 Perl 的 seek() 和 sysseek())和 chmod(2) 文件,以查看您的系統中實作了哪些常數。
請參閱 perlopentut,以了解 O_* 常數在 sysopen() 中的用途。
請參閱 perlfunc 中的「seek」 和 perlfunc 中的「sysseek」,以了解 SEEK_* 常數。
請參閱 perlfunc 中的「stat」,以了解 S_I* 常數。